Chmod - Cheatsheet
Tổng quan, cung cấp một cái nhìn ngắn gọn về quyền tập tin và hoạt động của lệnh chmod.
🔖 Gợi ý từ Admin
📝 Tài liệu phỏng vấn kiến thức lập trình: Xem tại đây!!!
📌 Tìm hiểu về thuật toán: Xem tại đây!!!
📌 Roadmaps - Lộ trình trở thành một lập trình viên: Xem tại đây!!!
⚡️ Cheatsheet các ngôn ngữ lập trình: Xem tại đây!!!
⚡️ Handbook lập trình: Xem tại đây!!!
I. Tổng hợp Chmod Cheatsheet
Lệnh chmod là viết tắt của change mode (chế độ thay đổi).
1. Cơ bản
⚡️ Cú pháp (Syntax)
$ chmod [options] <permissions> <file>
# Ví dụ
$ chmod 755 foo.txt
$ chmod +x quickref.py
$ chmod u-x quickref.py
$ chmod u=rwx,g=rx,o= quickref.sh
# Thay đổi các file và thư mục theo cách đệ quy
$ chmod -R 755 my_directory
Trong các ví dụ trên, cú pháp của lệnh chmod được minh họa cùng với một số ví dụ về cách sử dụng. Lệnh này cho phép bạn thay đổi quyền truy cập của file hoặc thư mục trong hệ thống file.
⚡️ Quyền phổ biến (Common Permissions)
| Mã | Quyền | Mô tả |
|---|---|---|
| 400 | r-------- | Chỉ có thể đọc bởi chủ sở hữu |
| 500 | r-x------ | Tránh thay đổi |
| 600 | rw------- | Có thể thay đổi bởi người dùng |
| 644 | rw-r--r-- | Có thể đọc và thay đổi bởi người dùng |
| 660 | rw-rw---- | Có thể thay đổi bởi người dùng và nhóm |
| 700 | rwx------ | Chỉ người dùng có quyền truy cập đầy đủ |
| 755 | rwxr-xr-x | Chỉ có thể thay đổi bởi người dùng |
| 775 | rwxrwxr-x | Chế độ chia sẻ cho một nhóm |
| 777 | rwxrwxrwx | Mọi người đều có thể làm mọi thứ |
⚡️ Giải thích (Explains)
$ ls -l
-rw-r--r-- 1 root root 3 Jun 29 15:35 a.log
drwxr-xr-x 2 root root 2 Jun 30 18:06 dir
# Phân tích quyền của "dir"
d rwx r-x r-x
┬ ─┬─ ─┬─ ─┬─
│ │ │ │
│ │ │ └─ 4. Khác | 5 (4+0+1)
│ │ └────── 3. Nhóm | 5 (4+0+1)
│ └─────────── 2. Người dùng | 7 (4+2+1)
└─────────────── 1. Loại file | thư mục
Kết quả của lệnh ls -l được giải thích để hiểu quyền truy cập của file và thư mục. Cột đầu tiên chỉ ra loại file (ở đây là thư mục), sau đó là quyền của người sở hữu, nhóm và người dùng khác. Mỗi quyền được biểu diễn dưới dạng "r" cho quyền đọc, "w" cho quyền ghi và "x" cho quyền thực thi.
⚡️ Các quyền của file và thư mục (Permission Modes)
$ ls -l
-rw-r--r-- 1 root root 3 Jun 29 15:35 a.log
drwxr-xr-x 2 root root 2 Jun 30 18:06 dir
-
file
a.log:rw-: Quyền đọc và ghi cho người sở hữu (root).r--: Quyền đọc cho nhóm (root).r--: Quyền đọc cho người dùng khác.
-
Thư mục
dir:rwx: Quyền đọc, ghi và thực thi cho người sở hữu (root).r-x: Quyền đọc và thực thi cho nhóm (root).r-x: Quyền đọc và thực thi cho người dùng khác.
Lưu ý: r là quyền đọc, w là quyền ghi, và x là quyền thực thi.
⚡️ Các đối tượng (Objects)
| Viết tắt | Ý nghĩa |
|---|---|
| u | Người sở hữu |
| g | Nhóm |
| o | Người dùng khác |
| a | Tất cả, giống như ugo |
⚡️ Quyền truy cập (Permissions)
| Viết tắt | Quyền | Giá trị |
|---|---|---|
| r | Đọc | 4 |
| w | Ghi | 2 |
| x | Thực thi | 1 |
| - | Không có quyền | 0 |
⚡️ Loại file (File Types)
| Viết tắt | Loại file |
|---|---|
| d | Thư mục |
| - | file thông thường |
| l | Liên kết tượng trưng |
2. Chmod Examples
⚡️ Toán tử (Operators)
| Toán tử | Mô tả |
|---|---|
| + | Thêm |
| - | Xóa |
| = | Đặt |
⚡️ chmod 600
$ chmod 600 example.txt
$ chmod u=rw,g=,o= example.txt
$ chmod a+rwx,u-x,g-rwx,o-rwx example.txt
⚡️ chmod 664
$ chmod 664 example.txt
$ chmod u=rw,g=rw,o=r example.txt
$ chmod a+rwx,u-x,g-x,o-wx example.txt
⚡️ chmod 777
$ chmod 777 example.txt
$ chmod u=rwx,g=rwx,o=rwx example.txt
$ chmod a=rwx example.txt
⚡️ Thực thi (Executable)
$ chmod +x ~/example.py
$ chmod u+x ~/example.py
$ chmod a+x ~/example.py
⚡️ chmod 754
$ chmod 754 foo.sh
$ chmod u=rwx,g=rx,o=r foo.sh
⚡️ Chế độ biểu tượng (Symbolic mode)
# Từ chối quyền thực thi cho tất cả mọi người.
$ chmod a-x chmodExampleFile.txt
# Cho phép quyền đọc cho tất cả mọi người.
$ chmod a+r chmodExampleFile.txt
# Làm cho một file có thể đọc và ghi bởi nhóm và người khác.
$ chmod go+rw chmodExampleFile.txt
# Làm cho một file thực thi được bởi người dùng/chủ sở hữu.
$ chmod u+x chmodExampleScript.sh
# Cho phép mọi người đọc, ghi và thực thi file và bật chế độ set group-ID.
$ chmod =rwx,g+s chmodExampleScript.sh
⚡️ Xoá quyền (Removing Permissions)
# Để xóa quyền đọc ghi cho một file, bạn có thể sử dụng cú pháp sau:
$ chmod o-rw example.txt
# Đối với file example.txt của chúng ta, chúng ta có thể xóa quyền đọc và ghi cho nhóm bằng cách chạy lệnh sau:
$ chmod g-rw example.txt
# Để xóa quyền đọc và ghi của chmod cho nhóm trong khi thêm quyền đọc và ghi cho mọi người, chúng ta có thể sử dụng lệnh sau:
$ chmod g-rw, o+rw example.txt
# Nhưng, nếu bạn muốn xóa tất cả các quyền cho nhóm và người khác, bạn có thể làm điều đó bằng cách sử dụng go= thay vì:
$ chmod go= example.txt
3. Chmod Practices
⚡️ Phân quyền SSH (SSH Permissions)
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/id_rsa
$ chmod 600 ~/.ssh/id_rsa.pub
$ chmod 400 /path/to/access_key.pem
⚡️ Phân quyền Web (Web Permissions)
$ chmod -R 644 /var/www/html/
$ chmod 644 .htaccess
$ chmod 644 robots.txt
$ chmod 755 /var/www/uploads/
$ find /var/www/html -type d -exec chmod 755 {} \;
⚡️ Thay đổi Batch (Batch Change)
$ chmod -R 644 /your_path
$ find /path -type d -exec chmod 755 {} \;
$ find /path -type f -exec chmod 644 {} \;
👉 Xem thêm tại: Command Substitution











