Thư mục cần có quyền thực thi được thiết lập để xem nội dung của chúng.
Từ http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm
Bạn có thể nghĩ về đọc và thực thi trên thư mục theo cách này: thư mục là các tập tin dữ liệu mà giữ hai mẩu thông tin cho mỗi tập tin bên trong, tên của tập tin và đó là số inode. Cần có quyền đọc để truy cập tên các tệp trong một thư mục. Thực thi (a.k.a. tìm kiếm) cho phép là cần thiết để truy cập các inodes của các tập tin trong một thư mục, nếu bạn đã biết tên của tập tin.
Khi bạn thay đổi quyền thư mục thành 644, bạn không thể đọc tệp trong thư mục đó mặc dù bạn có thể đọc thư mục đó để xem thư mục tồn tại.
Bạn cần phải làm điều này:
$ chmod -R 0755 .
Cách tốt hơn có thể được sử dụng cho phép chuỗi nếu bạn chỉ muốn tắt
Nếu không, bạn sẽ nhìn thấy thư mục, nhưng không truy cập vào thông tin trong thư mục đó.
Bạn có lẽ nên sử dụng điều khoản tương đối thay vì quyền tuyệt đối:
$ chmod -R go-w .
sẽ loại bỏ quyền ghi từ nhóm và khác, nhưng không chạm vào thực hiện phép.
Bạn cũng có thể sử dụng find
chỉ để thiết lập các thư mục hoặc chỉ để thiết lập file:
$ find . -type d -exec chmod 755 {} \;
này sẽ chỉ chạm vào các thư mục, thiết lập đọc và thực thi điều khoản trên tất cả các thư mục và thiết lập quyền ghi cho chủ sở hữu. Bằng cách này, bạn không đặt quyền thực thi trên các tệp.
Nguồn
2013-04-04 01:09:43
Thử 'sudo chmod -R 0644 .'. – Blender
'sudo !!' sau khi thất bại. – alex
@Blender: 'sudo chmod -R -644 .' sẽ xóa quyền thực hiện (tìm kiếm) khỏi thư mục hiện tại và tất cả các thư mục bên dưới nó - không phải là một ý tưởng hay. –