Tại sao chmod 644 làm cho các thư mục không thể truy cập?


8

Tôi có một loạt các tệp phương tiện (chỉ cần 644) là sự pha trộn của nhiều quyền khác nhau. Một số là nhóm hoặc toàn cầu có thể ghi được nên tôi nghĩ, để an toàn, tôi sẽ điều chỉnh tất cả chúng trở lại 644.

Vấn đề là có một hệ thống phân cấp thư mục và cho tất cả các thư mục bị bắt trong này ls -lhiển thị chúng là:

d????????? ? ? ? ?            ? Dirname

Nếu tôi điều chỉnh đến 744, nó đã được sửa.

Câu hỏi của tôi là: Chuyện gì đang xảy ra ở đây? Các thư mục cần phải được thực thi?

Câu trả lời:


7

Như đã lưu ý trong trang hướng dẫn chmodliên quan đến quyền:

Các chữ cái rwxXst chọn 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)

Bit thực thi trên một thư mục được giải thích ở trên là quyền 'tìm kiếm'; tức là bit thực thi chỉ cho phép bạn truy cập thư mục trong trình duyệt tệp hoặc di chuyển đến thư mục từ thiết bị đầu cuối bằng cách chạy cdlệnh hoặc chạy ls ~/folderđể liệt kê các tệp trong thư mục.

Thư mục phải được thực thi cho chủ sở hữu , mặc dù siêu người dùng vẫn có thể truy cập thư mục vì khi sử dụng sudobất kỳ tệp hoặc thư mục nào cũng có thể được truy cập hoặc xóa. Ngoài ra, quyền truy cập thư mục và tệp được giải thích thêm trong bài viết hữu ích này tại Stackoverflow .

Cũng cần lưu ý rằng 'thực thi' thư mục không có nghĩa là bạn thực sự đang chạy bất kỳ mã hoặc lệnh nào như khi tệp nhị phân hoặc tập lệnh thực thi được chạy.

Đối với người dùng máy tính để bàn tại nhà (mặc dù có lẽ không phải cho máy chủ của bạn), hầu hết các thư mục trong đó $HOMEđều có quyền thực thi được đặt cho người dùng, nhóm và người khác nếu được xem với stat ~/myfolder(đoạn trích bên dưới):

Access: (0755/drwxr-xr-x)  Uid: ( 1000/    mike)   Gid: ( 1000/    mike)

Các quyền tiêu chuẩn cho các thư mục trong phạm vi $HOME là 755 hoặc 775 và đối với các tệp chúng là 644. Tuy nhiên, phần còn lại của hệ thống tệp sẽ khác nhau. Một lần nữa, các thư mục phải có bit thực thi cho chủ sở hữu nếu không chúng sẽ không thể được mở bởi anh ta. Điều quan trọng là phải cẩn thận chmodkhi thay đổi quyền và đặc biệt là khi thực hiện đệ quy vì tình huống có thể nhanh chóng bị rối tung.

Để biết thêm thông tin, hãy xem man chmodhoặc các trang web Ubuntu trực tuyếnbài viết này tại Superuser .


0

Các thư mục cần xbit được đặt (đối với thư mục bit được xem là bit tìm kiếm) để mở. Nhiều người phát hiện ra rằng khi họ loại bỏ bit thực thi chmod -Rtrên toàn bộ thư mục thì họ không thể truy cập được nữa. Để khắc phục điều này, tôi sử dụng treeđể tôi chỉ có thể lấy bộ thư mục và tránh cơn ác mộng có tất cả các tệp được đặt làm tệp thực thi (tùy chọn cho cây là -d List directories only.):

sudo tree -faid dirname | xargs -L1 -I{} sudo chmod +x "{}"

nếu bạn không có tree:

find  dirname -type d -exec chmod +x {} 

Cảnh báo!!! bạn nên cân nhắc điều này:

  • sử dụng chmod hoặc chown đệ quy trên /thư mục gốc hoặc thư mục hệ thống sẽ phá hủy hệ điều hành của bạn (thực sự mọi thứ đệ quy trên /thư mục hoặc thư mục hệ thống đều nguy hiểm)

  • Đây không phải là một thực tiễn bảo mật tốt để đặt hàng loạt quyền như thế


@Melebius Ok cảm ơn, tôi rất vui vì chúng tôi đã hiểu nhau
Eduard Florinescu
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.