Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Kể từ khi ra đời, Linux được điều chỉnh hỗ trợ môi trường đa user. Với nhiều user và group trên hệ thống làm việc, rất thường gặp thư mục chia sẻ giữa user cùng group, và vấn đề nảy sinh từ chia sẻ file trong thư mục. Bài này thảo luận cách dùng sticky bit tinh chỉnh quyền truy cập file trên thư mục chia sẻ.

Mục đích minh họa, hệ thống có ba user – john1, john2, john3, đều thành viên group chung "johns".

Giả sử "john1" tạo thư mục mới "shared-dir" để chia sẻ cho tất cả user group "johns".

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Với lệnh ls, xem quyền "shared-dir", dịch như bảng sau:

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Chỉ "john1" đọc nội dung thư mục và ghi vào thư mục. Vì làm việc thư mục chia sẻ, muốn tất cả user group ghi vào "shared-dir".

Vì vậy, sửa quyền dùng lệnh chmod. Thêm quyền "write" (ghi) cho tất cả user group "johns" như dưới:

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Xem quyền cập nhật "shared-dir" như dưới. Phần gạch dưới vàng cho thấy group "johns" được cấp quyền "write".

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Thêm File Vào Thư Mục Chia Sẻ

Giờ "john1" thêm hai file (j1_file1.txt, j1_file2.txt) vào "shared-dir".

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Để dễ hiểu, hai ký tự đầu tên file đồng nghĩa với tên user.

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Tương tự, "john2" cũng "write" vào thư mục "shared-dir".

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Giờ có bốn file trong "shared-dir".

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Có Vấn Đề Với Thiết Lập Hiện Tại?

File "j1_file1.txt" do "john1" tạo, làm "john1" thành chủ sở hữu file. Giờ "john2" đăng nhập và cố xóa file này, anh ta sẽ làm được.

"john1" là chủ sở hữu file, nhưng "john2" xóa được vì quyền "write" cấp cho tất cả thành viên group "johns".

Tình huống này không lý tưởng. Muốn tất cả user ghi vào thư mục, nhưng chỉ chủ sở hữu file mới xóa được file. Làm sao đạt được?

Giới Thiệu Sticky Bit

Sticky bit là quyền đặc biệt đặt trên thư mục có quyền "write" cho group truy cập. Bit này đảm bảo tất cả thành viên group ghi vào thư mục, nhưng chỉ người tạo file, tức chủ sở hữu file, mới xóa file.

Lệnh chmod với cờ +t dùng đặt sticky bit trên thư mục.

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Quyền cập nhật thấy dưới.

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Giờ nếu "john2" cố xóa file "j1_file2.txt" do "john1" tạo, thao tác không được phép.

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Nếu bỏ quyền "execute" (thực thi) cho "others", như dưới:

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

sự tồn tại sticky bit trên thư mục biểu diễn bằng chữ "T" in hoa phần "others" chuỗi quyền. Hành vi sticky bit trên thư mục giữ nguyên.

Cách Dùng Sticky Bit Quản Lý File Trên Thư Mục Chia Sẻ Trong Linux

Biến Thể Của Lệnh "chmod"

Dạng số của lệnh chmod cũng dùng đặt sticky bit trên thư mục.

chmod nxyz <file_name>

trong đó,

  • n = 1, chỉ sticky bit. Giá trị khác "n" chỉ quyền đặc biệt khác.
  • x : quyền cho chủ sở hữu file
  • y : quyền cho group truy cập file
  • z : quyền cho others

Để đặt sticky bit trên "shared-dir", dùng lệnh:

chmod 1755 shared-dir

cho kết quả giống dùng +t trên quyền mặc định hiện có.

Việc dùng sticky bit chỉ đúng cho thư mục, không có ý nghĩa dùng cho file.