Tại sao một thư mục phải được thực thi?


29

Quyền cho các tập tin:

chmod 664 myFile // rw-rw-r--

Và cho các thư mục:

chmod 774 myFolder // rwxrwxr--

Nếu tôi chỉ sử dụng quyền "đọc và viết", các thư mục sẽ không hiển thị nội dung của chúng.

Lý do cho điều này là gì?

Câu trả lời:


42

Các thư mục (chúng thường không được gọi là thư mục trong * nix) có ý nghĩa khác nhau đối với các bit cho phép so với các tệp thông thường.

Đối với các thư mục, write cho phép tạo các tệp mới bên trong nó.

Đọc cho phép bạn liệt kê các tập tin bên trong nó.

Thực thi cho phép bạn nhập nó và truy cập các tập tin (hoặc các thư mục khác) bên trong.


2
Một cách dễ nhớ là tưởng tượng thực thi như một cú nhấp đúp vào một cái gì đó. Khi bạn bấm đúp vào thư mục (hoặc cd) bạn nhập (thực thi) nó.
John T

Lưu ý rằng chỉ truy cập ghi trên một thư mục sẽ không cho phép bạn tạo các tệp mới. Bạn cũng cần permisson thực thi trên thư mục để làm như vậy.
Matthias Braun

Có phải "truy cập tệp (hoặc các thư mục khác)" có nghĩa là tôi có thể xem các tệp tức là liệt kê chúng nhưng không thể xem chúng hoặc tôi có thể xem các tệp tức là liệt kê chúng và đọc chúng không?
vadasambar

11

Vì bạn không thể 'thực thi' một thư mục, bit thực thi đã được đưa vào sử dụng tốt hơn. Bit thực thi trên một thư mục cho phép bạn truy cập các mục bên trong thư mục, ngay cả khi bạn không thể liệt kê nội dung thư mục.

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

Từ chmodtrang hướng dẫn:

Các chữ cái rwxXst chọn các bit chế độ tệp cho người dùng bị ảnh hưởng: read (r), write (w), thực thi (hoặc tìm kiếm thư mục) (x) , chỉ thực hiện / tìm kiếm nếu tệp là thư mục hoặc đã có quyền thực thi đối với một số người dùng (X), đặt ID người dùng hoặc nhóm trên thực thi, cờ xóa bị hạn chế hoặc bit dính (t).


1

Bit "thực thi" thực sự có nghĩa là "tìm kiếm" khi được áp dụng cho các thư mục (từ man chmod). Điều này có vẻ hợp lý vì thực thi không có ý nghĩa cho một thư mục.


1

Thực thi quyền trên một thư mục cho phép bạn duyệt qua nó, để sử dụng các tài nguyên có trong nó.


0

Các xbit trên một thư mục đề cập đến lập chỉ mục / tìm kiếm thư mục / danh sách; không ai trong số đó là có thể nếu bạn giữ mức thấp đó.

Dưới đây là một ví dụ về việc sử dụng nó: Nếu bạn muốn có một người dùng với quyền đọc hạn chế trên mỗi thư mục nhưng nhà mình, nói /home/dummy, sau đó bạn cần phải thực hiện //homexbộ chút, nếu không anh ta thậm chí không thể nhận được vào thư mục nhà của ông.

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.