Bài 03: User, group và phân quyền Linux
Bài này đi sâu vào user, group, permission và cách thực hành phân quyền an toàn cho file/thư mục trên Linux.
- Linux quản lý user/group như thế nào.
- Hiểu quyền
rwxvà số quyền 644/755. - Dùng
chown,chmod,groups. - Phân quyền đúng cho thư mục web/app.
1. User và group là gì?
Mỗi process/file trong Linux đều gắn với user và group. Quyền truy cập quyết định ai được đọc, ghi hoặc chạy file.
whoami id groups
id cho biết UID, GID và các group mà user thuộc về.
2. Hiểu quyền rwx
ls -l
Ví dụ output:
-rw-r--r-- 1 root root 1200 May 03 config.txt drwxr-xr-x 2 www-data www-data 4096 May 03 public
| Ký hiệu | Ý nghĩa |
|---|---|
r |
read: đọc file/list thư mục |
w |
write: sửa file/tạo xóa trong thư mục |
x |
execute: chạy file/đi vào thư mục |
3. Quyền số 644, 755 là gì?
| Số | Quyền | Thường dùng |
|---|---|---|
| 644 | owner đọc/ghi, group/others chỉ đọc | File config, file web tĩnh |
| 600 | chỉ owner đọc/ghi | Private key, secret |
| 755 | owner full, group/others đọc/chạy | Thư mục public, script cần chạy |
| 700 | chỉ owner full | Thư mục riêng tư |
4. Lab thực hành phân quyền
mkdir -p ~/sysadmin-lab/day03 cd ~/sysadmin-lab/day03 echo "secret" > secret.txt ls -l secret.txt chmod 600 secret.txt ls -l secret.txt chmod 644 secret.txt ls -l secret.txt
Khi file là 600, chỉ owner đọc/ghi. Khi là 644, người khác có thể đọc nhưng không ghi.
Đổi owner/group
sudo chown root:root secret.txt ls -l secret.txt sudo chown $USER:$USER secret.txt ls -l secret.txt
chown user:group file đổi chủ sở hữu file. Trên production phải rất cẩn thận vì đổi sai owner có thể làm service không đọc/ghi được.
5. Tình huống thực tế: web không upload được ảnh
Ứng dụng web cần ghi vào thư mục uploads/, nhưng thư mục thuộc root nên process web không ghi được.
ls -ld /var/www/site/uploads # nếu app chạy bằng user www-data sudo chown -R www-data:www-data /var/www/site/uploads sudo chmod -R 755 /var/www/site/uploads
6. Lỗi thường gặp
- Dùng
chmod 777để “cho nhanh”. Đây là thói quen nguy hiểm. chown -Rnhầm thư mục quá rộng.- Không biết service chạy bằng user nào.
- Private key để quyền quá mở, SSH từ chối dùng key.
chmod -R hoặc chown -R, hãy chạy pwd và ls -ld để chắc chắn đúng thư mục.7. Checklist phân quyền
- Biết file/thư mục thuộc user/group nào.
- Biết service chạy bằng user nào.
- File nhạy cảm dùng 600/640.
- Thư mục public thường 755, file thường 644.
- Tránh 777 trừ lab tạm thời.
8. Bài tập
- Tạo file
private.txtvà đặt quyền 600. - Tạo thư mục
publicvà đặt quyền 755. - Giải thích khác nhau giữa 644 và 600.
- Tìm user đang chạy service SSH hoặc Nginx nếu máy có cài.
