2011-11-17 37 views
46
[email protected]$ whoami 
    max 
    [email protected]$ ls -la ./defines.php 
    -rwxrwxrwx 1 max max 1985 2011-11-16 02:01 ./defines.php 
    [email protected]$ chmod 0777 ./defines.php 
    [email protected]$ rm ./defines.php 
    rm: cannot remove `./defines.php': Permission denied 
    [email protected]$ 

Làm cách nào để xóa tệp này?rm: không thể xóa: Quyền bị từ chối

+0

Tệp có trong cùng thư mục bạn đang chạy lệnh không? thì nó chỉ là 'rm define.php'. tại sao bạn lại đặt trước '. /'? –

+0

Điều khác: Nó phải là 'chmod 777' –

+1

Nó không tạo sự khác biệt. 'file' và'./file' là tương đương. – Femaref

Trả lời

123

Mã này nói tất cả mọi thứ:

[email protected]$ chmod 777 . 

Được rồi, nó không nói tất cả mọi thứ.

Trong UNIX và Linux, khả năng xóa tệp là không phải là được xác định bởi các bit truy cập của tệp đó. Nó được xác định bởi các bit truy cập của thư mục chứa tệp.

Hãy suy nghĩ theo cách này - việc xóa tệp sẽ không sửa đổi tệp đó. Bạn không ghi vào tập tin, vậy tại sao nên "w" trên tập tin quan trọng? Việc xóa tệp yêu cầu chỉnh sửa thư mục trỏ đến tệp, vì vậy bạn cần "w" trên thư mục đó.

+2

OMG! Câu trả lời này đã cho tôi giải pháp cho một vấn đề khác, cùng một logic này áp dụng để đọc các tập tin, không chỉ xóa. –

Các vấn đề liên quan