Hệ thống file Linux: cấu trúc thư mục và phân quyền

Trên Linux, mọi thứ đều là file — kể cả thiết bị và tiến trình. Hiểu cấu trúc thư mục và cơ chế phân quyền là nền tảng để không phá hỏng hệ thống.

Các thư mục quan trọng

/etc     # file cấu hình của hệ thống và dịch vụ
/var     # dữ liệu thay đổi: log, database, cache
/home    # thư mục cá nhân của người dùng
/usr     # phần mềm cài thêm, thư viện
/opt     # phần mềm bên thứ ba
/tmp     # file tạm, thường bị xóa khi khởi động lại
/proc    # thông tin nhân và tiến trình (ảo, không nằm trên đĩa)

Khi gỡ lỗi, bạn sẽ sống ở /etc (sửa cấu hình) và /var/log (đọc log).

Đọc dòng quyền

$ ls -l config.ini
-rw-r----- 1 root www-data 1240 Sep  2 10:15 config.ini

Chuỗi -rw-r----- chia thành 4 phần:

  • - — loại: - file thường, d thư mục, l liên kết
  • rw- — quyền của chủ sở hữu (root): đọc, ghi
  • r-- — quyền của nhóm (www-data): chỉ đọc
  • --- — quyền của người khác: không gì cả

Ký hiệu số

r = 4, w = 2, x = 1. Cộng lại cho từng nhóm:

chmod 644 file.txt    # rw- r-- r--  file thường
chmod 640 secret.ini  # rw- r-- ---  chỉ chủ và nhóm đọc được
chmod 755 script.sh   # rwx r-x r-x  file chạy được, thư mục
chmod 600 ~/.ssh/id_ed25519   # rw- --- ---  khóa riêng tư

Quy tắc thực dụng: 644 cho file, 755 cho thư mục và script. Thấy 777 ở đâu là gần như chắc chắn có vấn đề.

Vì sao thư mục cần quyền x

Với thư mục, x không phải “chạy” mà là “được phép đi vào”. Thư mục có r nhưng thiếu x thì bạn liệt kê được tên file mà không mở được file nào.

Đổi chủ sở hữu

chown www-data:www-data /var/www/html -R
chgrp developers duan/ -R

Lỗi phân quyền hay gặp trên web server

# Chuẩn cho thư mục web
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
chown -R www-data:www-data /var/www/html

Gặp lỗi 403 hoặc “Permission denied” trong log, hãy kiểm tra ba thứ theo thứ tự: chủ sở hữu file, quyền của thư mục cha, và quyền thực thi trên toàn bộ đường dẫn.

umask: quyền mặc định

umask          # thường là 022
# 022 nghĩa là file mới sinh ra có quyền 644, thư mục 755

Nguyên tắc cuối: cấp quyền ít nhất có thể. Mỗi lần định gõ chmod 777, hãy dừng lại và tìm đúng chủ sở hữu cần đặt.

Lên đầu trang