chmod -R làm cho các tập tin trong thư mục con có thể khẩn cấp vì một số lý do


22

Tôi đã điều chỉnh các quyền khi thiết lập một số chủ đề WordPress và chạy chmod 664 -R theme-dir/*Nó hoạt động tốt trên các tệp trong thư mục gốc, nhưng tất cả các tệp trong thư mục con bây giờ đều đọc như thế này khi tôi ls -l:

?---------  ? ? ? ?            ? core_functions.php
?---------  ? ? ? ?            ? css
?---------  ? ? ? ?            ? custom_functions.php
?---------  ? ? ? ?            ? images
?---------  ? ? ? ?            ? import_settings.php
?---------  ? ? ? ?            ? js
?---------  ? ? ? ?            ? options_trim.php
?---------  ? ? ? ?            ? page_templates
?---------  ? ? ? ?            ? post_thumbnails_trim.php
?---------+ ? ? ? ?            ? shortcodes

Tôi không thể cd vào bất kỳ thư mục con nào và tôi cũng không thể xóa chúng. Tôi chưa bao giờ thấy bất cứ điều gì như thế này, có ai từng gặp phải điều gì tương tự không?


có vẻ như hệ thống tập tin bị hỏng ..
alexus

1
chạychmod -R u+rwX,go+rX,go-w theme-dir/*
Dusan Bajic

@ dusan.bajic Điều đó đã làm việc, cảm ơn. Vẫn không biết tại sao nó lại xảy ra ở nơi đầu tiên.
Sal

5
@alexus không tham nhũng, chỉ cần perm
gà con

Tôi nghĩ rằng tôi đã thấy một cái gì đó tương tự khi tôi đã chơi 644 (hoặc bất cứ thứ gì) so với chmod, nhưng tôi thực sự không cảm thấy muốn thử nghiệm lại trên một hệ thống làm việc
Foon

Câu trả lời:


49

Truy cập nội dung (hoặc cụ thể hơn là siêu dữ liệu tệp ngoại trừ tên tệp) của một thư mục yêu cầu thư mục có tập bit thực thi.

Chmod đệ quy của bạn đã xóa quyền đó, vì vậy bạn mất quyền truy cập đó. Nếu bạn đang sử dụng -Rtùy chọn chmodtốt hơn là tránh sử dụng phiên bản số của các quyền, và thay vào đó hãy chạy (sử dụng trạng thái mong muốn của bạn làm ví dụ) chmod -R ug=rwX,o=rX. Vốn X ở đó có nghĩa là chỉ đặt bit X trên các thư mục hoặc tệp có ít nhất một xbộ. Ngoài ra, bạn có thể muốn sử dụng 644 ( u=rwX,go=rX) trừ khi bạn thực sự cần người dùng nhóm để viết.


6
X có nghĩa là đặt X trên các thư mục và tệp đã có quyền thực thi cho một số người dùng (thường là những gì bạn muốn)
tomclegg

1
@tomclegg: Đúng vậy. Tôi cập nhật câu trả lời của tôi một cách thích hợp. Có vẻ kỳ lạ là họ không bao giờ thêm một phiên bản cụ thể của thư mục thực sự, hoặc thậm chí tốt hơn một chữ cái hoạt động trước (như u, g, o hoặc a) có nghĩa là chỉ áp dụng thay đổi này cho các thư mục.
Kevin Cathcart

13

Từ tài liệu Wordpress :

Nếu bạn có quyền truy cập shell vào máy chủ của mình, bạn có thể thay đổi đệ quy quyền truy cập tệp bằng cách sử dụng các lệnh sau:

Đối với các thư mục:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

Đối với tệp:

find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Một sự quá mức cho vấn đề đặc biệt này, nhưng rất hữu ích trong các trường hợp khác :)
nurchi

1
Tôi đã nhận thấy trong các môi trường nhạy cảm bảo mật hơn (Magento và Health Care Systems gần đây) rằng các nhà cung cấp và hệ thống nguồn mở đang chuyển sang khuyến nghị CHỈ sử dụng phương pháp tệp vì nó cho phép bạn kiểm soát chi tiết diều trong điều kiện trên và cũng cho phép kiểm soát chi tiết ứng dụng setuid, setgid và cả "bit dính" khét tiếng. Có lẽ sẽ có nhiều việc hơn để vạch ra điều này cho trường hợp sử dụng này nhưng câu trả lời đặt cược luôn là phương pháp an toàn nhất đạt được kết quả mong muốn. Tôi tin rằng Bảo mật phải luôn là Tính năng số 1 nếu có thể đủ khả năng.
Bryan 'BJ' Hoffpauir Jr.
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.