Phân quyền file trên Linux: chmod, chown và con số 755 là gì?

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

'Permission denied' là thông báo lỗi mà ai làm việc với Linux cũng gặp. Thay vì gõ chmod 777 cho xong chuyện (một thói quen rất xấu), hãy dành mười phút hiểu cách phân quyền hoạt động. Bạn sẽ sửa lỗi nhanh hơn và an toàn hơn.

Đọc kết quả của ls -l

Chạy ls -l bạn sẽ thấy dòng như:

-rwxr-xr-- 1 deploy www-data 4096 Jan 10 09:00 run.sh

Chuỗi đầu tiên gồm 10 ký tự:

  • Ký tự 1: loại. Dấu - là file, d là thư mục, l là liên kết.
  • Ba ký tự tiếp theo: quyền của chủ sở hữu (user).
  • Ba ký tự kế: quyền của nhóm (group).
  • Ba ký tự cuối: quyền của những người còn lại (others).

Hai cột sau là tên chủ sở hữu (deploy) và nhóm (www-data).

Ba loại quyền r, w, x

  • r (read): đọc nội dung file, hoặc liệt kê thư mục.
  • w (write): sửa file, hoặc tạo và xóa file trong thư mục.
  • x (execute): chạy file như chương trình, hoặc đi vào thư mục.

Lưu ý thư mục cần quyền x thì mới cd vào được.

Con số 755 và 644 từ đâu ra?

Mỗi quyền có một giá trị: r = 4, w = 2, x = 1. Cộng lại cho từng nhóm:

SốQuyềnÝ nghĩa
7rwxĐọc, ghi, chạy
6rw-Đọc, ghi
5r-xĐọc, chạy
4r--Chỉ đọc
0---Không có quyền

Vậy 755 nghĩa là chủ sở hữu có rwx, nhóm và người khác có r-x. Đây là quyền thường dùng cho thư mục và file chạy được. Còn 644 là chủ rw-, người khác chỉ r--, thường dùng cho file thông thường.

Lệnh chmod

chmod 755 deploy.sh
chmod 644 index.html
chmod u+x run.sh
chmod g-w config.php
chmod -R 755 thumuc

Có hai cách viết: dùng số (như 755) hoặc dùng ký hiệu (u là chủ, g là nhóm, o là người khác, a là tất cả; + thêm, - bỏ). Cờ -R áp dụng cho cả nội dung bên trong, hãy dùng thận trọng vì nó áp quyền giống nhau cho cả thư mục lẫn file.

Lệnh chown

Dùng chown để đổi chủ sở hữu và nhóm:

sudo chown deploy:www-data /var/www/app
sudo chown -R deploy:www-data /var/www/app

Chỉ quản trị viên (root) mới đổi được chủ sở hữu, nên bạn thường cần sudo.

Tình huống thực tế: web server không ghi được file

Ứng dụng của bạn cần ghi vào thư mục storage hoặc uploads nhưng báo lỗi quyền. Cách đúng:

  1. Xác định tiến trình web chạy bằng người dùng nào (thường là www-data hoặc nginx).
  2. Đặt nhóm hoặc chủ sở hữu thư mục đó cho đúng người dùng.
  3. Cấp quyền ghi tối thiểu, ví dụ 775 cho thư mục cần ghi, 644 cho file.

Cách này tốt hơn nhiều so với 777, vốn cho phép bất kỳ ai trên máy chủ sửa file.

Những quy tắc an toàn

  • Không dùng chmod 777 trên máy chủ thật.
  • File chứa bí mật như .env hay khóa riêng SSH nên là 600 hoặc 640.
  • Không chạy ứng dụng web bằng root.
  • Thư mục gốc mã nguồn không cần cho web server quyền ghi, chỉ những thư mục dữ liệu mới cần.

Kết luận

Phân quyền Linux xoay quanh ba đối tượng (chủ, nhóm, người khác) và ba quyền (đọc, ghi, chạy). Hiểu được cách tính số, bạn sẽ không cần đoán mò khi gặp lỗi nữa. Lần tới thấy 'Permission denied', hãy chạy ls -l trước rồi mới quyết định.

Nếu muốn củng cố nền tảng quản trị máy chủ qua bài tập thực tế, hãy xem danh sách khóa học tại codebem.com.

author_photo
Nguyễn Đình Cường

0 comment