Gần đây tôi đã tự hỏi sự khác biệt giữa các quyền tập tin số ba và bốn chữ số là gì. Tôi có được các quyền số bằng cách chạy. stat --format "%a" $file_name
Sự khác biệt giữa 0644 và 644 là gì?
Gần đây tôi đã tự hỏi sự khác biệt giữa các quyền tập tin số ba và bốn chữ số là gì. Tôi có được các quyền số bằng cách chạy. stat --format "%a" $file_name
Sự khác biệt giữa 0644 và 644 là gì?
Câu trả lời:
Chữ số đầu tiên trong quyền bốn chữ số là tổng của id người dùng (4), id nhóm (2) và dính (1). Quyền ba chữ số giống như quyền bốn chữ số với chữ số đầu tiên được đặt thành không. Như vậy:
Nếu một tệp có ID người dùng được đặt được thực thi, thì nó được thực thi như thể bởi chủ sở hữu của tệp chứ không phải người dùng thực hiện. Do đó, ví dụ, /bin/mount
thường được sở hữu bởi root và có quyền 4755 trong đó 4 biểu thị rằng, ngay cả khi được thực thi bởi người dùng bình thường, nó sẽ chạy với các đặc quyền của chủ sở hữu (root).
Đặt ID nhóm trên một thư mục rất hữu ích để chia sẻ tệp.
Bit dính được sử dụng trên các thư mục như /tmp
vậy để tất cả người dùng có thể tạo tệp nhưng ngăn người không sở hữu xóa tệp của người khác. Do đó, các quyền của /tmp
thường là 1777 trong đó 1 biểu thị rằng bit dính được đặt.
Từ man chmod
:
Chế độ số là từ một đến bốn chữ số bát phân (0-7), xuất phát bằng cách cộng các bit có giá trị 4, 2 và 1. Các chữ số bị bỏ qua được coi là số 0 đứng đầu. Chữ số đầu tiên chọn ID người dùng đã đặt (4) và đặt ID nhóm (2) và xóa thuộc tính bị hạn chế hoặc thuộc tính dính (1). Chữ số thứ hai chọn quyền cho người dùng sở hữu tệp: read (4), write (2) và thực thi (1); người thứ ba chọn quyền cho người dùng khác trong nhóm của tệp, với cùng các giá trị; và thứ tư cho những người dùng khác không thuộc nhóm của tệp, có cùng giá trị.