rm: không thể xóa thư mục /: Quyền bị từ chối


16

Tôi đã tạo một thư mục gọi là "shadi" và đặt quyền này cho nó

sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul  1 01:58 shadi

Trong tình huống này tôi có quyền "người khác", nhưng tại sao tôi không thể xóa nó?

sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied

Câu trả lời:


25

Vấn đề ở đây là bạn không có quyền "w" trên /homethư mục. Trong khi xóa một ghi chú rằng bạn không ghi vào tệp đó nhưng bạn đang thay đổi nội dung của thư mục chứa tệp, do đó, phải có quyền "w" trên thư mục nếu bạn muốn xóa bất kỳ tệp nào khỏi thư mục.

ảnh chụp màn hình thiết bị đầu cuối của "ls -ld / home"

Nếu tôi đang ở trong một thư mục có quyền "w", tôi có thể xóa bất kỳ tệp nào của nó mà không phải lo lắng về quyền của tệp. Lưu ý rằng thư mục hiện tại của tôi /home/rohithcó quyền "w" và do đó tôi có thể xóa bất kỳ tệp nào của nó bất kể quyền của tệp.

ảnh chụp màn hình thiết bị đầu cuối của loại bỏ / nhà / rohith / shadi

Nếu cùng một tệp được tạo trong thư mục '/ home' không có quyền "w", tôi sẽ nhận được cùng một đầu ra như của bạn! :)

ảnh chụp màn hình thiết bị đầu cuối của việc cố gắng loại bỏ / nhà / shadi


8

Điều này xảy ra bởi vì bạn không sở hữu thư mục, nó thuộc sở hữu của 'root' và nhóm 'root'. Vì vậy, để xóa nó, bạn có thể thay đổi quyền sở hữu và sau đó xóa nó (ở đây bạn nâng cao quyền của mình và trở thành 'root' để lấy quyền sở hữu):

sudo chown $USER:$USER ./shadi
rm -r ./shadi

Hoặc bạn bỏ qua việc sở hữu và thực hiện sudo rmđể nâng cao quyền của mình và trở thành 'gốc' để xóa:

sudo rm -r ./shadi

nó có nghĩa là chỉ chủ sở hữu có thể xóa các tập tin?
Sinoosh

Có, hoặc bạn cần nâng cao quyền của mình bằng sudolệnh. điều này sẽ yêu cầu mật khẩu của bạn sau đó và bạn trở thành 'root' cho lệnh sau cụ thể.
Videonauth

làm bạn ngay bây giờ nếu "Shadi" là một tập tin tôi có thể loại bỏ nó với người dùng "sinoosh" .it không được yêu cầu "sudo" của nó không làm cho cảnh cho tôi lý do tại sao nó không làm việc với thư mục
Sinoosh

5

Thử đi:

sudo rm -r ./shadi

Các quyền hiển thị root chủ sở hữu và root nhóm, vì vậy bạn phải sử dụng sudo.


1
Có, lệnh này vẫn ổn, nhưng vấn đề của tôi là tại sao rm không hoạt động với quyền này, tôi có toàn quyền cho thư mục này trong trường khác
Sinoosh

"Tôi có toàn quyền cho thư mục này" Không, bạn không có. "lĩnh vực khác" shadi không phải là "người khác".
Rinzwind

nhưng "sinoosh" thuộc về người khác và anh ta thực hiện "rm -r shadi"
Sinoosh

2

sử dụng lệnh này với tư cách người dùng root: rm -rf ./shadi


0

Đó là các tài khoản khác nhau.

Làm thế nào bạn mong đợi sự an toàn từ tài khoản của bạn, nếu mọi người có quyền xóa thư mục nhà của bạn?

wTheo mặc định, bạn không có quyền xóa thư mục chính của người khác, trừ khi họ chmod +wcó thư mục đó.

Dưới đây là các quyền khác nhau và một ví dụ ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | u | g | o |
+ - + - + - + - +
| r | 1 | 1 | 1 |
+ - + - + - + - +
| w | 2 | 2 | 2 |
+ - + - + - + - +
| x | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
Nó đi như thế này: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, vì vậy 750, tức là một hệ thống cho phép lý tưởng. Chủ sở hữu ( utrong trường hợp này) có thể đọc, viết và thực thi tệp, nhóm chủ sở hữu ( gtrong trường hợp này) có thể đọc và thực thi và bất kỳ ai khác ( otrong trường hợp này) không thể làm bất cứ điều gì. Đây là huyền thoại:
u: người dùng hiện tại (Người dùng)
g: nhóm người dùng hiện tại (Nhóm)
o: không phải nhóm người dùng hiện tại (Những người khác)
r: đọc quyền (Đọc)
w: quyền viết (Viết)
x: thực thi quyền (X-ecute)
.

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.