Cách Sử Dụng “Sticky Bit”

Trong bài viết này, chúng ta sẽ khám phá khái niệm “sticky bit” – một quyền đặc biệt trong hệ thống tệp tin Unix-like. Bài viết cung cấp 20 ví dụ sử dụng (thường là trong ngữ cảnh quản trị hệ thống), cùng hướng dẫn chi tiết về ý nghĩa, cách dùng, bảng biến đổi quyền, và các lưu ý quan trọng.

Phần 1: Hướng dẫn sử dụng “sticky bit” và các lưu ý

1. Ý nghĩa cơ bản của “sticky bit”

“Sticky bit” có một vai trò chính:

  • Quyền: Ngăn người dùng xóa hoặc đổi tên tệp tin trong một thư mục công cộng (ví dụ: /tmp), trừ khi họ là chủ sở hữu của tệp tin đó, chủ sở hữu của thư mục, hoặc người dùng root.

Ví dụ:

  • Nếu thư mục /tmp có sticky bit, một người dùng không thể xóa tệp tin của người dùng khác trong /tmp, ngay cả khi họ có quyền ghi vào thư mục đó.

2. Cách sử dụng “sticky bit”

a. Thiết lập Sticky Bit

  1. Sử dụng lệnh chmod +t
    Ví dụ: chmod +t /tmp (Thiết lập sticky bit cho thư mục /tmp.)
  2. Sử dụng chế độ số chmod 1xxx
    Ví dụ: chmod 1777 /tmp (Thiết lập sticky bit và quyền 777 cho thư mục /tmp.)

b. Kiểm tra Sticky Bit

  1. Sử dụng lệnh ls -l
    Ví dụ: ls -ld /tmp (Kiểm tra quyền của thư mục /tmp. Sticky bit được biểu thị bằng ‘t’ ở cuối chuỗi quyền.)

c. Gỡ bỏ Sticky Bit

  1. Sử dụng lệnh chmod -t
    Ví dụ: chmod -t /tmp (Gỡ bỏ sticky bit khỏi thư mục /tmp.)

d. Biến thể và cách dùng trong câu lệnh

Lệnh Tùy chọn Ý nghĩa / Cách dùng Ví dụ
chmod +t Thêm sticky bit chmod +t /tmp (Thêm sticky bit vào /tmp)
chmod -t Gỡ bỏ sticky bit chmod -t /tmp (Gỡ bỏ sticky bit khỏi /tmp)
ls -ld Hiển thị quyền và thông tin thư mục ls -ld /tmp (Hiển thị thông tin về /tmp, bao gồm sticky bit)

3. Một số lưu ý quan trọng khi sử dụng “sticky bit”

  • Thư mục công cộng: Sticky bit thường được sử dụng cho các thư mục công cộng như /tmp để bảo vệ tệp tin của người dùng.
  • Quyền hạn: Chỉ chủ sở hữu của tệp tin, chủ sở hữu của thư mục hoặc root mới có thể xóa/đổi tên tệp tin trong thư mục có sticky bit.

4. Lưu ý khi sử dụng “sticky bit”

a. Ngữ cảnh phù hợp

  • Thư mục chia sẻ: Khi nhiều người dùng có quyền ghi vào một thư mục, sticky bit giúp ngăn chặn việc vô tình hoặc cố ý xóa tệp tin của người khác.

b. Phân biệt với các loại quyền khác

  • Quyền đọc/ghi/thực thi: Sticky bit không ảnh hưởng đến quyền đọc, ghi, hoặc thực thi tệp tin. Nó chỉ điều chỉnh quyền xóa/đổi tên tệp tin.

c. “Sticky bit” không phải là quyền truy cập

  • Sticky bit không cấp quyền truy cập. Nó chỉ giới hạn quyền thao tác trên tệp tin đã có.

5. Những lỗi cần tránh

  1. Quên thiết lập sticky bit cho thư mục công cộng: Điều này có thể dẫn đến việc người dùng xóa tệp tin của người khác.
  2. Áp dụng sticky bit cho các thư mục không phù hợp: Sticky bit chỉ nên được sử dụng cho các thư mục công cộng nơi nhiều người dùng có quyền ghi.

6. Mẹo để ghi nhớ và sử dụng hiệu quả

  • Hình dung: “Sticky” như “dính”, ngăn người dùng xóa tệp tin không thuộc quyền sở hữu của họ.
  • Thực hành: Thiết lập và kiểm tra sticky bit trên một thư mục thử nghiệm.
  • Tài liệu tham khảo: Luôn tham khảo tài liệu hướng dẫn của hệ thống để hiểu rõ cách sử dụng các lệnh chmod và ls.

Phần 2: Ví dụ sử dụng “sticky bit” và các dạng liên quan

Ví dụ minh họa

  1. chmod +t /tmp: Thiết lập sticky bit cho thư mục /tmp.
  2. ls -ld /tmp: Kiểm tra xem sticky bit đã được thiết lập cho /tmp hay chưa (sẽ thấy ‘t’ trong chuỗi quyền).
  3. chmod 1777 /tmp: Thiết lập sticky bit và quyền 777 cho /tmp.
  4. mkdir /shared: Tạo thư mục chia sẻ.
  5. chmod 777 /shared: Cấp quyền 777 cho thư mục /shared (mọi người có thể đọc, ghi, thực thi).
  6. chmod +t /shared: Thêm sticky bit vào thư mục /shared để bảo vệ tệp tin.
  7. ls -ld /shared: Kiểm tra quyền của /shared sau khi thêm sticky bit.
  8. su user1: Chuyển sang người dùng user1.
  9. touch /tmp/user1_file: Tạo một tệp tin trong /tmp dưới quyền user1.
  10. exit: Thoát khỏi người dùng user1, trở lại người dùng ban đầu.
  11. su user2: Chuyển sang người dùng user2.
  12. rm /tmp/user1_file: Cố gắng xóa tệp tin của user1 (sẽ không thành công nếu /tmp có sticky bit).
  13. ls -l /tmp: Kiểm tra lại nội dung của /tmp.
  14. chmod -t /tmp: Gỡ bỏ sticky bit khỏi /tmp.
  15. rm /tmp/user1_file: Cố gắng xóa tệp tin của user1 (sẽ thành công vì sticky bit đã bị gỡ bỏ).
  16. mkdir /var/www/uploads: Tạo thư mục upload cho web server.
  17. chown www-data:www-data /var/www/uploads: Gán quyền sở hữu cho user và group www-data.
  18. chmod 777 /var/www/uploads: Cấp quyền 777 cho thư mục uploads.
  19. chmod +t /var/www/uploads: Thêm sticky bit vào thư mục uploads.
  20. ls -ld /var/www/uploads: Kiểm tra quyền của thư mục uploads.