Chương 6: Linux Administration


1. Tổng Quan về Linux

1.1. Linux là gì?

Linux là sự kết hợp của phần mềm được gọi là GNU/Linux:

  • GNU: Tập hợp phần mềm tự do (free software) cung cấp các công cụ tương đương mã nguồn mở so với UNIX.
  • Linux Kernel: Nhân hệ điều hành — thành phần cốt lõi quản lý tài nguyên phần cứng và cung cấp dịch vụ cho các chương trình.

Lịch sử Linux gắn liền với UNIX — hệ điều hành được phát triển vào cuối những năm 1960 tại Bell Labs. Linus Torvalds tạo ra Linux Kernel năm 1991 và phát hành mã nguồn mở, từ đó phong trào Open Source phát triển mạnh mẽ.

1.2. Linux là Open Source

Trong lịch sử, hầu hết phần mềm được phát hành theo closed-source license (giấy phép mã nguồn đóng):

  • Người dùng chỉ nhận được quyền sử dụng file thực thi (executable / machine code).
  • Không thể xem hoặc chỉnh sửa mã nguồn.

Triết lý Open Source (Mã nguồn mở):

  • Bạn có quyền lấy mã nguồn phần mềm.
  • Bạn có quyền chỉnh sửa cho mục đích sử dụng của mình.
  • Phần lớn bản phân phối Linux hiện nay đều miễn phí và cho phép tùy biến sâu.

1.3. Kiến Trúc Linux

+------------------+
|   Người dùng     |
+------------------+
|   Shell          |  <-- Giao diện dòng lệnh
+------------------+
|   Ứng dụng       |  <-- Trình duyệt, editor, dịch vụ
+------------------+
|   Tiện ích       |  <-- Các lệnh hệ thống (ls, cp, grep...)
+------------------+
|   Kernel         |  <-- Nhân hệ điều hành
+------------------+
|   Phần cứng      |  <-- CPU, RAM, Disk, Network
+------------------+

Shell

Shell là giao diện dòng lệnh cho phép người dùng tương tác với hệ điều hành bằng cách gõ lệnh. Shell nhận lệnh từ người dùng, chuyển tiếp cho kernel thực thi, sau đó trả kết quả về.

Các loại shell phổ biến trong Linux:

ShellDấu nhắcMô tả
C Shell (csh/tcsh)%Cú pháp gần giống ngôn ngữ C
Bourne Shell (sh)$Shell truyền thống của UNIX
Bourne Again Shell (bash)$Phổ biến nhất, mặc định trên hầu hết distro
Korn Shell (ksh)$Kết hợp tính năng sh và csh
Z Shell (zsh)%Shell hiện đại, tính năng mạnh

Kernel

Kernel là trung tâm của Linux, có vai trò:

  • Làm cầu nối giữa ứng dụng và phần cứng (hardware abstraction layer).
  • Quản lý bộ nhớ, tiến trình, thiết bị vào/ra, hệ thống file.
  • Sử dụng swap space (không gian hoán đổi trên đĩa) để lưu trữ dữ liệu tiến trình khi RAM không đủ.

1.4. Các Bản Phân Phối Linux (Distro)

Bản phân phối Linux (Linux distribution) = Linux Kernel + GNU tools + phần mềm bổ sung + trình quản lý gói.

Các distro phổ biến:

  • Red Hat Enterprise Linux (RHEL): Thương mại, dùng trong doanh nghiệp.
  • CentOS: Phiên bản miễn phí của RHEL (nay là CentOS Stream).
  • Fedora: Cộng đồng, thử nghiệm tính năng mới.
  • Debian: Ổn định, mã nguồn mở hoàn toàn.
  • Ubuntu: Dễ dùng, phổ biến nhất cho desktop/server.
  • Kubuntu, Xubuntu: Ubuntu với desktop environment khác.
  • SUSE / openSUSE: Phổ biến ở châu Âu.
  • Gentoo: Tự biên dịch từ nguồn, tối ưu cao.
  • Slackware: Một trong những distro lâu đời nhất.
  • FreeBSD: Kỹ thuật mạnh, không hoàn toàn là Linux.

2. Cài Đặt Linux OS

2.1. Quá Trình Khởi Động (Booting)

Khi bật máy tính, hệ điều hành Linux được nạp theo 8 bước:

flowchart TD A[Bước 1: Khởi động OS] --> B[Bước 2: BIOS tìm Boot Device] B --> C[Bước 3: Điều khiển chuyển đến MBR của thiết bị boot đầu tiên] C --> D[Bước 4: MBR trỏ đến boot record của OS được chọn] D --> E[Bước 5: Hiển thị Linux Kernel] E --> F[Bước 6: Xác định operation level - runlevel] F --> G[Bước 7: Thực thi script cho operation level đó] G --> H[Bước 8: Hiển thị yêu cầu đăng nhập]

Runlevel (mức vận hành) xác định trạng thái hoạt động của hệ thống:

RunlevelÝ nghĩa
0Tắt máy (Halt)
1Single-user mode (khôi phục)
3Multi-user, không có GUI
5Multi-user, có GUI
6Khởi động lại (Reboot)

2.2. Dòng Lệnh Linux

Cấu trúc lệnh

Command  [options]  [arguments]
  • Command: Tên lệnh cần thực thi.
  • Options: Tùy chọn thay đổi hành vi mặc định của lệnh, thường bắt đầu bằng - (short) hoặc -- (long).
  • Arguments: Thông tin bổ sung cho lệnh (ví dụ: tên file, đường dẫn).
# Ví dụ đầy đủ
[root@server01 home]# ls -a -l /etc

# Kết hợp options
[root@server01 home]# ls -al /etc

Phím tắt Terminal

Phím tắtChức năng
Ctrl + CHủy lệnh đang chạy
Ctrl + DEnd-of-file (thoát shell hoặc kết thúc input)
Ctrl + \Thoát lệnh đang thực thi (mạnh hơn Ctrl+C)
Ctrl + SDừng hiển thị output
Ctrl + QTiếp tục hiển thị output
Ctrl + HXóa 1 ký tự
Ctrl + WXóa 1 từ
↑ / ↓Duyệt lịch sử lệnh

Các lệnh cơ bản

LệnhChức năng
dateHiển thị ngày giờ hệ thống
whoHiển thị người dùng đang đăng nhập
pwdHiển thị thư mục hiện tại
calHiển thị lịch
psHiển thị các tiến trình đang chạy
lsLiệt kê file/thư mục
headHiển thị phần đầu của file
tailHiển thị phần cuối của file
hostnameHiển thị hoặc thay đổi tên máy
passwdĐổi mật khẩu người dùng
suChuyển sang người dùng khác

Xem trợ giúp (man pages)

# Xem manual của lệnh
man ls

# Tìm kiếm theo từ khóa
man -k keyword

# Xem dạng info
info ls

Trong trang man:

PhímChức năng
SpaceTrang tiếp theo
qThoát
/keywordTìm kiếm từ khóa
nTìm kết quả tiếp theo

2.3. Đăng Nhập Hệ Thống

Login: <username>
Password: <password>

# Sau khi đăng nhập thành công:
[username@computername folder]#

# Ví dụ:
[root@server01 home]#
  • Dấu # cho biết đang ở tài khoản root (superuser).
  • Dấu $ cho biết đang ở tài khoản người dùng thường.
# Đăng xuất
exit
# hoặc
logout

2.4. Tắt và Khởi Động Lại

# Chuyển về runlevel 0
init 0

# Tắt sau t phút
shutdown -hy t

# Tắt ngay lập tức
shutdown -h now

# Tắt nguồn
halt
poweroff
# Chuyển về runlevel 6
init 6

# Khởi động lại
reboot

# Khởi động lại sau t phút
shutdown -ry t

# Khởi động lại ngay
shutdown -r now

3. Quản Trị Người Dùng và Nhóm

3.1. Khái Niệm Cơ Bản

User Account (Tài khoản người dùng):

  • Mỗi người dùng có một username duy nhất và một UID (User ID) duy nhất.
  • Mỗi người dùng thuộc ít nhất 1 primary group (nhóm chính).

Group (Nhóm):

  • Mỗi nhóm có một group name duy nhất và một GID (Group ID) duy nhất.
  • Một nhóm có thể có 1 hoặc nhiều thành viên.

Home Directory (Thư mục home):

  • Mỗi người dùng có một thư mục home riêng, thường là /home/username.
  • Chứa dữ liệu cá nhân và file cấu hình của người dùng.

Skeleton Directory (/etc/skel/):

  • Chứa các file và thư mục mặc định sẽ được sao chép vào thư mục home khi tạo người dùng mới.

3.2. Root — Tài Khoản Superuser

Root là tài khoản quản trị viên có toàn quyền trên hệ thống. UID của root là 0.

Thực hành tốt hơn: Sử dụng sudo hoặc su thay vì đăng nhập trực tiếp bằng root.

# Chuyển sang root tạm thời
su -

# Thực thi một lệnh với quyền root
sudo command

# Ví dụ
sudo apt update

3.3. Quản Trị Người Dùng

Tạo người dùng — useradd

useradd [options] username
OptionMô tả
-c "mô tả"Thêm thông tin mô tả tài khoản
-mTạo thư mục home nếu chưa tồn tại
-u uidChỉ định UID cụ thể
-G group1,group2Danh sách nhóm phụ (supplementary groups)
-d /home/dirChỉ định đường dẫn thư mục home
-g groupnameChỉ định nhóm chính (primary group)
# Ví dụ tạo người dùng
useradd -g studs -c "Student 01" stud01

# Ví dụ đầy đủ
useradd -u 1000 -g users -G wheel,research -c 'Jane Doe' jane

Sau khi tạo, thông tin được tự động thêm vào:

  • /etc/passwd — thông tin tài khoản
  • /var/spool/mail/username — hộp thư hệ thống

Đặt mật khẩu — passwd

# Người dùng tự đổi mật khẩu
passwd

# Admin đặt mật khẩu cho người dùng khác
passwd jane
root@localhost:~# passwd jane
Enter new UNIX password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new UNIX password:

Sửa đổi người dùng — usermod

usermod [options] username
Option ngắnOption dàiMô tả
-c COMMENT--comment COMMENTThay đổi thông tin mô tả
-d HOME_DIR--home HOME_DIRThay đổi thư mục home
-e EXPIRE_DATE--expiredate DATEĐặt ngày hết hạn tài khoản
-l NEW_NAME--login NEW_NAMEĐổi tên đăng nhập
-G group1,group2--groupsThay đổi danh sách nhóm phụ
-L--lockKhóa tài khoản
-U--unlockMở khóa tài khoản
# Kiểm tra người dùng có đang đăng nhập không
who
w
last

Xóa người dùng — userdel

# Xóa người dùng, giữ lại thư mục home
userdel jane

# Xóa người dùng và thư mục home
userdel -r jane

3.4. Quản Trị Nhóm

Xem thông tin nhóm

# Tìm kiếm nhóm trong /etc/group
grep root /etc/group

# Xem thông tin nhóm
getent group root

Output:

root:x:0:

Định dạng file /etc/group:

groupname:password:GID:member1,member2,...

Tạo nhóm — groupadd

# Tạo nhóm với GID cụ thể
groupadd -g 506 research

# Tạo nhóm, tự động gán GID
groupadd development
root@localhost:~# grep research /etc/group
research:x:506:

root@localhost:~# grep development /etc/group
development:x:507:

Lưu ý về GID:

  • GID dưới 1000 thường được dành cho tài khoản hệ thống.
  • Tránh tạo GID trùng với khoảng UID để tránh nhầm lẫn.

Quy tắc đặt tên nhóm

  • Ký tự đầu tiên: chữ cái hoặc dấu _.
  • Các ký tự tiếp theo: chữ cái, số, dấu _, dấu -.
  • Không quá 16 ký tự.
  • Ký tự cuối không nên là dấu -.

Sửa đổi nhóm — groupmod

# Đổi tên nhóm (từ sales thành clerks)
groupmod -n clerks sales

# Thay đổi GID
groupmod -g 10003 clerks

Xóa nhóm — groupdel

groupdel clerks
  • Chỉ có thể xóa nhóm phụ (supplementary groups), không thể xóa nhóm chính của bất kỳ người dùng nào.
  • Các file thuộc nhóm bị xóa sẽ trở thành orphaned.

3.5. Các File Cấu Hình Người Dùng/Nhóm

FileNội dung
/etc/passwdThông tin tài khoản người dùng (username, UID, GID, home, shell)
/etc/shadowMật khẩu đã mã hóa và chính sách mật khẩu
/etc/groupThông tin nhóm
/etc/login.defsCấu hình mặc định cho tài khoản (UID range, GID range, chính sách mật khẩu)
/etc/default/useraddGiá trị mặc định khi tạo người dùng mới

4. Lệnh Quản Lý Mạng

4.1. Cấu Hình Network Interface

Khi cấu hình mạng, cần xác định:

  • Có dây (Wired) hay không dây (Wireless)? — Wireless có thêm cấu hình bảo mật (WPA2, WPA3).
  • DHCP hay Static IP?
    • DHCP: Server cấp phát IP tự động, subnet mask, gateway, DNS.
    • Static: Cấu hình thủ công địa chỉ IP và các thông số mạng.

File cấu hình mạng (CentOS/RHEL)

# Xem file cấu hình
cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Cấu hình DHCP
DEVICE="eth0"
BOOTPROTO=dhcp
NM_CONTROLLED="yes"
ONBOOT=yes
# Cấu hình Static IP
DEVICE="eth0"
BOOTPROTO=none
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes

Cấu hình IPv6

Thêm vào file /etc/sysconfig/network-scripts/ifcfg-eth0:

IPV6INIT=yes
IPV6ADDR=<IPv6 IP Address>
IPV6_DEFAULTGW=<IPv6 IP Gateway Address>

4.2. DNS — Domain Name Service

DNS chuyển đổi tên miền thành địa chỉ IP và ngược lại.

Ba file quan trọng cho name resolution

FileChức năng
/etc/hostsBảng tra cứu hostname-to-IP tĩnh, ưu tiên đầu tiên
/etc/resolv.confĐịa chỉ IP của DNS server
/etc/nsswitch.confThứ tự tra cứu hostname (hosts → dns hoặc ngược lại)
# Ví dụ /etc/hosts
127.0.0.1   localhost
192.168.1.10  server01.example.com  server01

# Ví dụ /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com

4.3. Các Lệnh Network Quan Trọng

ifconfig — Xem cấu hình giao diện mạng (cũ)

ifconfig
eth0  Link encap:Ethernet  HWaddr b6:84:ab:e9:8f:0a
      inet addr:192.168.1.2  Bcast:0.0.0.0  Mask:255.255.255.0
      inet6 addr: fe80::b484:abff:fee9:8f0a/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:95 errors:0 dropped:4 overruns:0 frame:0
      TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
      RX bytes:25306 (25.3 KB)  TX bytes:690 (690.0 B)

Thông tin quan trọng trong output:

  • HWaddr: Địa chỉ MAC (địa chỉ vật lý)
  • inet addr: Địa chỉ IPv4
  • Mask: Subnet mask
  • inet6 addr: Địa chỉ IPv6
  • RX/TX packets: Số gói tin nhận/gửi

ip — Lệnh thay thế ifconfig (mới)

# Cú pháp
ip [OPTIONS] OBJECT COMMAND

# Xem địa chỉ IP
ip addr show
ip a

# Xem routing table
ip route show
ip r

# Bật/tắt interface
ip link set eth0 up
ip link set eth0 down

# Gán IP tạm thời
ip addr add 192.168.1.100/24 dev eth0

route — Xem bảng định tuyến

route
Kernel IP routing table
Destination  Gateway      Genmask        Flags  Metric  Ref  Use  Iface
192.168.1.0  *            255.255.255.0  U      0       0    0    eth0
default      192.168.1.1  0.0.0.0        UG     0       0    0    eth0

Giải thích:

  • 192.168.1.0 với gateway *: Mạng cục bộ, gửi trực tiếp không qua gateway.
  • default với gateway 192.168.1.1: Mọi gói tin đến mạng khác đều được chuyển qua gateway này.

ping — Kiểm tra kết nối mạng

# Ping liên tục (Ctrl+C để dừng)
ping 192.168.1.1

# Ping giới hạn số lần
ping -c 4 192.168.1.1

# Ping theo tên miền
ping google.com

Output thành công:

64 bytes from 192.168.1.2: icmp_req=1 ttl=64 time=0.051 ms

Output thất bại:

From 192.168.1.2 icmp_seq=1 Destination Host Unreachable

netstat — Thống kê kết nối mạng

# Xem bảng định tuyến
netstat -r

# Xem các port đang lắng nghe (TCP)
netstat -tln

# Xem tất cả kết nối
netstat -an

# Xem process sử dụng port
netstat -tulnp
Active Internet connections (only servers)
Proto  Recv-Q  Send-Q  Local Address      Foreign Address  State
tcp    0       0       192.168.1.2:53     0.0.0.0:*        LISTEN
tcp    0       0       127.0.0.1:53       0.0.0.0:*        LISTEN
FlagÝ nghĩa
-tKết nối TCP
-uKết nối UDP
-lChỉ hiển thị socket đang LISTEN
-nHiển thị số thay vì tên
-pHiển thị PID/tên process

dig — Truy vấn DNS chi tiết

# Tra cứu địa chỉ IP của tên miền
dig example.com

# Tra cứu loại bản ghi cụ thể
dig example.com MX    # Mail exchange
dig example.com NS    # Name server
dig example.com ANY   # Tất cả bản ghi
; <<>> DiG 9.8.1-P1 <<>> example.com
...
example.com.    86400   IN  A   192.168.1.2
...

host — Tra cứu DNS đơn giản

# Tra cứu IP từ tên miền
host example.com
# example.com has address 192.168.1.2

# Tra cứu ngược (IP → tên miền)
host 192.168.1.2
# 2.1.168.192.in-addr.arpa domain name pointer example.com.

ssh — Kết nối từ xa an toàn

# Kết nối đến máy từ xa
ssh username@hostname
ssh bob@test
ssh bob@192.168.1.10

# Chỉ định port
ssh -p 2222 bob@192.168.1.10

# Đăng xuất khỏi phiên SSH
exit
The authenticity of host 'test (127.0.0.1)' can't be established.
RSA key fingerprint is c2:0d:ff:27:4c:f8:69:a9:c6:3e:13:da:2f:47:e4:c9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'test' (RSA) to the list of known hosts.
bob@test's password:
bob@test:~$

RSA Key Fingerprint và bảo mật SSH:

  • Lần đầu kết nối, SSH hiển thị fingerprint của server để xác minh danh tính.
  • Nếu bạn chọn yes, fingerprint được lưu vào ~/.ssh/known_hosts.
  • Lần kết nối sau, SSH so sánh fingerprint. Nếu không khớp → cảnh báo Man-in-the-Middle Attack.

5. Dịch Vụ Mạng (Network Services)

5.1. Tổng Quan

Các dịch vụ mạng cơ bản trên Linux:

Dịch vụChức năng
DHCPTự động cấp phát địa chỉ IP cho các máy trong mạng
DNSPhân giải tên miền thành địa chỉ IP
Web ServerPhục vụ nội dung web (HTTP/HTTPS)
File ServiceChia sẻ file trong mạng (NFS, Samba)

5.2. DHCP (Dynamic Host Configuration Protocol)

DHCP server tự động cấp phát:

  • Địa chỉ IP
  • Subnet Mask
  • Default Gateway
  • DNS Server address

5.3. DNS Server

DNS hoạt động theo mô hình phân cấp:

  • Root DNSTLD DNS (.com, .vn) → Authoritative DNS → Bản ghi

Các loại bản ghi DNS:

Bản ghiÝ nghĩa
AÁnh xạ hostname → IPv4
AAAAÁnh xạ hostname → IPv6
MXMail server cho domain
CNAMEAlias (tên khác) cho hostname
PTRTra cứu ngược (IP → hostname)
NSName server cho zone

5.4. Web Server

Phần mềm web server phổ biến:

  • Apache HTTP Server: Phổ biến nhất, module-based.
  • Nginx: Hiệu năng cao, phù hợp reverse proxy.

File cấu hình Apache: /etc/httpd/conf/httpd.conf Document root mặc định: /var/www/html/

5.5. File Service

  • NFS (Network File System): Chia sẻ file giữa các máy Linux/UNIX.
  • Samba: Chia sẻ file tương thích với Windows (SMB protocol).

Câu Hỏi Trắc Nghiệm

Câu 1. Linux Kernel có vai trò chính là gì?

  • A. Cung cấp giao diện đồ họa cho người dùng
  • B. Làm cầu nối giữa ứng dụng và phần cứng
  • C. Quản lý tài khoản người dùng
  • D. Cung cấp trình duyệt web

Câu 2. GNU trong GNU/Linux là viết tắt của?

  • A. General Network Utility
  • B. GNU’s Not Unix
  • C. Global Network Unix
  • D. Generic Network User

Câu 3. Triết lý Open Source cho phép người dùng làm gì?

  • A. Chỉ sử dụng phần mềm miễn phí
  • B. Lấy mã nguồn và chỉnh sửa cho mục đích của mình
  • C. Phân phối lại mà không cần giấy phép
  • D. Sử dụng phần mềm mà không cần cài đặt

Câu 4. Shell trong kiến trúc Linux cung cấp chức năng gì?

  • A. Quản lý bộ nhớ RAM
  • B. Giao diện dòng lệnh cho người dùng tương tác với hệ thống
  • C. Kết nối internet
  • D. Quản lý driver phần cứng

Câu 5. Dấu nhắc lệnh nào sau đây cho biết người dùng đang ở tài khoản root?

  • A. $
  • B. %
  • C. #
  • D. @

Câu 6. Bước nào trong quá trình boot xác định runlevel hoạt động?

  • A. Bước 2
  • B. Bước 4
  • C. Bước 6
  • D. Bước 8

Câu 7. Lệnh nào dùng để hiển thị thư mục hiện tại?

  • A. ls
  • B. cd
  • C. pwd
  • D. dir

Câu 8. Lệnh shutdown -hy 5 thực hiện điều gì?

  • A. Khởi động lại sau 5 giây
  • B. Tắt máy sau 5 phút
  • C. Tắt nguồn sau 5 giờ
  • D. Dừng tất cả dịch vụ sau 5 phút

Câu 9. Phím tắt nào dùng để hủy một lệnh đang chạy trong terminal?

  • A. Ctrl + D
  • B. Ctrl + C
  • C. Ctrl + Z
  • D. Ctrl + X

Câu 10. Lệnh nào hiển thị manual của một lệnh?

  • A. help
  • B. info
  • C. man
  • D. doc

Câu 11. Trong trang man, phím nào dùng để thoát?

  • A. x
  • B. e
  • C. q
  • D. Escape

Câu 12. UID của tài khoản root là bao nhiêu?

  • A. 1
  • B. 100
  • C. 0
  • D. 999

Câu 13. Lệnh useradd -G wheel,research jane có ý nghĩa gì?

  • A. Tạo người dùng jane với nhóm chính là wheel và research
  • B. Tạo người dùng jane với nhóm phụ là wheel và research
  • C. Thêm jane vào nhóm wheel và xóa khỏi nhóm research
  • D. Tạo hai nhóm mới wheel và research

Câu 14. Lệnh nào xóa người dùng VÀ thư mục home?

  • A. userdel jane
  • B. userdel -r jane
  • C. userdel -d jane
  • D. usermod -d jane

Câu 15. File nào lưu trữ mật khẩu đã mã hóa của người dùng?

  • A. /etc/passwd
  • B. /etc/password
  • C. /etc/shadow
  • D. /etc/login

Câu 16. GID dưới bao nhiêu thường được dành cho tài khoản hệ thống?

  • A. 100
  • B. 500
  • C. 1000
  • D. 65535

Câu 17. Lệnh groupmod -n clerks sales thực hiện điều gì?

  • A. Đổi tên nhóm clerks thành sales
  • B. Đổi tên nhóm sales thành clerks
  • C. Thêm clerks vào nhóm sales
  • D. Xóa nhóm clerks và sales

Câu 18. Lệnh find / -nogroup dùng để làm gì?

  • A. Tìm file không có quyền truy cập
  • B. Tìm file không thuộc nhóm nào (orphaned files)
  • C. Tìm thư mục trống
  • D. Tìm file của root

Câu 19. Thư mục /etc/skel/ có tác dụng gì?

  • A. Lưu file cấu hình kernel
  • B. Chứa template file/thư mục mặc định cho home directory người dùng mới
  • C. Lưu log hệ thống
  • D. Chứa script khởi động

Câu 20. Chỉ loại nhóm nào có thể bị xóa bằng groupdel?

  • A. Primary group
  • B. Supplementary group (nhóm phụ)
  • C. System group
  • D. Tất cả đều được

Câu 21. File /etc/nsswitch.conf dùng để làm gì?

  • A. Cấu hình DNS server
  • B. Cấu hình thứ tự tra cứu hostname (files trước hay dns trước)
  • C. Lưu bảng ánh xạ hostname-IP tĩnh
  • D. Cấu hình network interface

Câu 22. Lệnh ifconfig hiển thị thông tin gì?

  • A. Danh sách các tiến trình mạng
  • B. Cấu hình giao diện mạng (IP, MAC, trạng thái)
  • C. Bảng định tuyến
  • D. Danh sách port đang mở

Câu 23. Trong output của ifconfig, HWaddr là gì?

  • A. Hostname Address
  • B. Hard disk Address
  • C. Hardware (MAC) Address
  • D. HTTP Web Address

Câu 24. Lệnh ip addr show tương đương với lệnh nào (cũ hơn)?

  • A. route
  • B. netstat
  • C. ifconfig
  • D. ping

Câu 25. Bảng định tuyến (routing table) cho biết điều gì?

  • A. Danh sách các DNS server
  • B. Các kết nối TCP đang hoạt động
  • C. Đường đi của gói tin đến các mạng khác nhau
  • D. Danh sách người dùng đang đăng nhập

Câu 26. Lệnh ping -c 4 192.168.1.1 có ý nghĩa gì?

  • A. Ping 4 địa chỉ IP khác nhau
  • B. Ping với 4 byte data
  • C. Ping 4 lần rồi dừng
  • D. Ping qua 4 router

Câu 27. Ping sử dụng giao thức nào?

  • A. TCP
  • B. UDP
  • C. ICMP
  • D. ARP

Câu 28. Lệnh netstat -tln hiển thị điều gì?

  • A. Tất cả kết nối mạng
  • B. Các TCP port đang ở trạng thái LISTEN
  • C. Bảng định tuyến
  • D. Thống kê UDP

Câu 29. Lệnh dig khác host như thế nào?

  • A. dig không tra cứu DNS
  • B. dig cung cấp thông tin chi tiết hơn về kết quả DNS
  • C. host nhanh hơn và chi tiết hơn
  • D. Không có sự khác biệt

Câu 30. Lệnh host 192.168.1.2 thực hiện kiểu tra cứu DNS nào?

  • A. Forward lookup (tên → IP)
  • B. Reverse lookup (IP → tên)
  • C. MX record lookup
  • D. Zone transfer

Câu 31. Khi SSH lần đầu kết nối đến một server, hệ thống hỏi xác nhận điều gì?

  • A. Tên đăng nhập của server
  • B. RSA key fingerprint của server
  • C. Phiên bản SSH của server
  • D. Địa chỉ MAC của server

Câu 32. SSH lưu fingerprint của server đã biết vào file nào?

  • A. /etc/ssh/known_hosts
  • B. ~/.ssh/known_hosts
  • C. /etc/ssh/authorized_keys
  • D. ~/.ssh/id_rsa

Câu 33. Cấu hình BOOTPROTO=dhcp trong file ifcfg-eth0 có nghĩa là?

  • A. Interface sẽ không sử dụng IP
  • B. Interface sẽ nhận IP tự động từ DHCP server
  • C. Interface sẽ dùng IP tĩnh
  • D. Interface sẽ dùng IPv6

Câu 34. File /etc/resolv.conf chứa thông tin gì?

  • A. Danh sách người dùng có quyền dùng DNS
  • B. Địa chỉ IP của DNS server để truy vấn
  • C. Bảng ánh xạ hostname-IP tĩnh
  • D. Cấu hình giao diện mạng

Câu 35. Điểm khác biệt chính giữa DHCP và Static IP là gì?

  • A. DHCP chỉ dùng cho IPv6
  • B. DHCP tự động cấp phát IP; Static yêu cầu cấu hình thủ công
  • C. Static IP chỉ dùng trên wireless
  • D. DHCP nhanh hơn Static về tốc độ mạng

Câu 36. Lệnh nào dùng để xem bảng định tuyến kernel?

  • A. ifconfig -r
  • B. netstat -r hoặc route
  • C. ping -r
  • D. dns -r

Câu 37. Lệnh init 6 thực hiện điều gì?

  • A. Tắt máy
  • B. Chuyển sang single-user mode
  • C. Khởi động lại hệ thống
  • D. Khởi động GUI

Câu 38. Trong cấu trúc lệnh Linux ls -al /etc, phần nào là option?

  • A. ls
  • B. -al
  • C. /etc
  • D. Tất cả

Câu 39. Lệnh ps hiển thị điều gì?

  • A. Kích thước phân vùng đĩa
  • B. Các tiến trình đang chạy
  • C. Trạng thái mạng
  • D. Thông tin người dùng

Câu 40. Lệnh tail khác head ở điểm nào?

  • A. tail hiển thị phần đầu file, head hiển thị phần cuối
  • B. tail hiển thị phần cuối file, head hiển thị phần đầu
  • C. tail dùng cho log, head dùng cho text
  • D. Không có sự khác biệt

Câu 41. Option -c trong lệnh useradd dùng để làm gì?

  • A. Chỉ định thư mục home
  • B. Tạo tài khoản không có mật khẩu
  • C. Thêm thông tin mô tả (comment/GECOS) cho tài khoản
  • D. Chỉ định UID

Câu 42. Lệnh nào kiểm tra người dùng nào đang đăng nhập vào hệ thống?

  • A. ls
  • B. ps
  • C. who
  • D. id

Câu 43. Để cấu hình IPv6 trên CentOS, cần thêm tham số nào vào file ifcfg?

  • A. IPV6=yes
  • B. IPV6INIT=yes cùng với địa chỉ và gateway
  • C. INET6=enable
  • D. PROTOCOL=ipv6

Câu 44. Lệnh getent group root cho kết quả gì?

  • A. Danh sách tất cả người dùng trong hệ thống
  • B. Thông tin về nhóm root từ database nhóm
  • C. Quyền của nhóm root
  • D. Tất cả file thuộc nhóm root

Câu 45. Khi thay đổi GID của một nhóm bằng groupmod -g, điều gì xảy ra với các file thuộc nhóm cũ?

  • A. Tự động cập nhật GID mới
  • B. Bị xóa
  • C. Trở thành orphaned (không còn liên kết nhóm)
  • D. Được chuyển sang nhóm root

Câu 46. Lệnh man -k keyword thực hiện gì?

  • A. Mở manual với từ khóa được tô sáng
  • B. Tìm kiếm tất cả manual page có chứa từ khóa
  • C. Xem manual của lệnh tên keyword
  • D. Lọc manual theo section

Câu 47. Trong output route, dòng có Destination là default và Gateway là 192.168.1.1 có nghĩa gì?

  • A. Tất cả gói tin đến 192.168.1.1 sẽ bị từ chối
  • B. Gói tin không khớp route nào khác sẽ được chuyển đến 192.168.1.1
  • C. 192.168.1.1 là DNS server mặc định
  • D. Interface mặc định là 192.168.1.1

Câu 48. Lệnh nào thay thế netstat trên hệ thống Linux hiện đại?

  • A. nstat
  • B. ss
  • C. sockstat
  • D. ipstat

Câu 49. Swap space trong Linux có chức năng gì?

  • A. Lưu trữ các file tạm thời của người dùng
  • B. Mở rộng bộ nhớ RAM bằng cách dùng không gian đĩa
  • C. Cache cho ổ đĩa
  • D. Phân vùng backup hệ thống

Câu 50. Tại sao không nên thường xuyên đăng nhập trực tiếp bằng tài khoản root?

  • A. Root không thể chạy tất cả lệnh
  • B. Mọi tiến trình đều chạy với quyền root, tăng nguy cơ bảo mật và lỗi vô ý
  • C. Root không có thư mục home
  • D. Root không thể kết nối mạng

Câu 51. Lệnh groupadd không có option -g sẽ xảy ra điều gì?

  • A. Lệnh sẽ thất bại
  • B. GID tự động được gán bởi hệ thống
  • C. Nhóm được tạo với GID = 0
  • D. Yêu cầu nhập GID thủ công

Câu 52. File /etc/hosts có tác dụng gì trong name resolution?

  • A. Lưu cấu hình DNS server
  • B. Cung cấp bảng ánh xạ hostname-IP tĩnh, ưu tiên trước DNS
  • C. Lưu lịch sử các domain đã truy cập
  • D. Chặn các domain độc hại

Câu 53. Lệnh ip link set eth0 down thực hiện điều gì?

  • A. Xóa interface eth0
  • B. Tắt (disable) network interface eth0
  • C. Đặt tốc độ eth0 xuống thấp nhất
  • D. Ngắt kết nối SSH qua eth0

Câu 54. Lệnh last hiển thị điều gì?

  • A. File được chỉnh sửa gần nhất
  • B. Lịch sử đăng nhập của người dùng
  • C. Lệnh cuối cùng được thực thi
  • D. Người dùng cuối cùng được tạo

Câu 55. Khi SSH nhận cảnh báo “REMOTE HOST IDENTIFICATION HAS CHANGED”, nguyên nhân có thể là?

  • A. Server vừa được nâng cấp SSH
  • B. Có thể có tấn công Man-in-the-Middle hoặc server đã được cài đặt lại
  • C. Mật khẩu SSH đã hết hạn
  • D. Kết nối mạng không ổn định