Số đầu tiên trong đối số chmod 4 số (chẳng hạn như `chmod 4555`) là gì?


20

Khi tôi cài đặt một chương trình, nó khuyên tôi nên làm chmod 4555. Được rồi, tôi biết về các giá trị nếu tôi chỉ sử dụng ba số. Ví dụ

chmod 555 test-file

sẽ cho

-r-xr-xr-x

4 để viết, 2 cho đọc và 1 cho thực thi. Nhưng, khi tôi làm điều này:

chmod 4555 test-file

nó đưa cho tôi

-r-sr-xr-x

Vì vậy, xđổi thành s. Điều đó nghĩa là gì?


1
cũng đã giải thích ở đây: Askubfox.com/a/550947/72216 ("về s- cờ")
Jacob Vlijm

@JacobVlijm cũng giải thích sâu hơn với các bit "đặc biệt" khác, bên dưới
Thomas Ward

Câu trả lời:


29

Thực tế có 4 bộ thuộc tính bạn có thể làm việc với thông qua chmod.

Special, User/Owner, Group, Và Otherstheo thứ tự đó, khi làm việc với các chmods bốn-số, với số đầu tiên là bit đặc biệt có thể được thiết lập.

chmod 4555 tương đương như sau:

  • Set UID bit - Chạy tệp với tư cách là chủ sở hữu bất kể người dùng nào đang chạy nó
  • Người dùng / Chủ sở hữu: Read, Execute
  • Nhóm: Read, Execute
  • Khác: Read, Execute

Chuỗi s'người có thể đọc được' của bạn cho các quyền cho biết rằng SetUIDbit (được giải thích bên dưới) được đặt.


Thực tế, chúng ta có thể chia chmodđối số quyền bốn số thành các mô tả cụ thể như sau và thực hiện phép toán để xác định phần a 4trong phần đầu tiên sẽ là gì, 5trong phần tiếp theo, v.v.

Hãy ghi nhớ rằng ####Special User/Owner GroupOtherstheo thứ tự đó.

Đối với Specialcác thuộc tính (số đầu tiên trong chmodđối số bốn số ):

  • Set UID- Chạy tệp với tư cách là chủ sở hữu bất kể người dùng đang chạy nó (hiển thị như strong chuỗi quyền có thể đọc được của con người cho Userphần) = +4 ( --sbên dưới User/Owner)
  • Set GID- Chạy tệp dưới dạng nhóm bất kể người dùng / nhóm đang chạy tệp đó (hiển thị như strong chuỗi quyền truy cập có thể đọc được của con người cho Groupphần) = +2 ( --sbên dưới Group)
  • Sticky Bit- CHỈ CÓ HIỆU LỰC TRÊN TRỰC TIẾP - Nếu được đặt, chỉ người dùng chủ sở hữu của thư mục và rootcó thể xóa thư mục, và chỉ chủ sở hữu tệp hoặc rootcó thể xóa các tệp bên trong nó. (hiển thị như ttrong chuỗi quyền có thể đọc được của con người cho Othersphần) = +1 ( --tbên dưới Others)

Đối với User/Owner, GroupOtherscác thuộc tính (ba số cuối cùng trong bốn số chmodlập luận):

  • Read= +4 ( r--)
  • Write= +2 ( -w-)
  • Execute(đối với tệp) hoặc 'Nhập vào / Danh sách các mục' (đối với thư mục) = +1 ( --x)

7

Nó được gọi là SETUIDbit. nếu nó được đặt bởi chmod 4555 test-file(trong trường hợp của bạn), thì test-filebất kỳ người dùng nào cũng có thể được thực thi như thể người dùng là chủ sở hữu của tệp.

Khi SETUIDbit được đặt thì ID người dùng hiệu quả ( EUID) của người dùng không có quyền thực thi tệp nếu không (bằng các quyền thông thường, ví dụ 0744), lấy EUID của chủ sở hữu tệp và có thể thực thi tệp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.