rm: nie można usunąć katalogu /: Odmowa dostępu


17

Zrobiłem katalog o nazwie „shadi” i ustawiłem dla niego to uprawnienie

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

W tej sytuacji mam uprawnienia „innych”, ale dlaczego nie mogę go usunąć?

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

Odpowiedzi:


25

Problem polega na tym, że nie masz uprawnień „w” do /homekatalogu. Podczas usuwania pliku zauważ, że nie piszesz do tego pliku, ale zmieniasz zawartość katalogu zawierającego plik, więc posiadanie uprawnienia „w” w katalogu jest koniecznością, jeśli chcesz usunąć dowolny plik z katalogu.

zrzut ekranu terminala „ls -ld / home”

Jeśli jestem w katalogu z uprawnieniem „w”, mogę usunąć dowolny z jego plików, nie martwiąc się samym uprawnieniem do pliku. Zauważ, że mój obecny katalog /home/rohithma uprawnienia „w” i dlatego mogę usunąć dowolny z jego plików, niezależnie od uprawnień do plików.

zrzut ekranu przedstawiający usuwanie / home / rohith / shadi

Jeśli ten sam plik zostanie utworzony w katalogu „/ home”, który nie ma uprawnień „w”, otrzymam takie same dane wyjściowe jak twoje! :)

zrzut ekranu przedstawiający próbę usunięcia / home / shadi


9

Dzieje się tak, ponieważ nie jesteś właścicielem katalogu, jest on własnością „root” i grupy „root”. Aby go usunąć, możesz zmienić własność, a następnie ją usunąć (tutaj podnosisz swoje prawa i stajesz się „rootem” dla przejęcia własności):

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

Możesz też pominąć przejęcie odpowiedzialności i sudo rmpodnieść swoje prawa i stać się „rootem” dla usunięcia:

sudo rm -r ./shadi

oznacza to, że tylko właściciele mogą usuwać pliki?
Sinoosh,

Tak, lub musisz podnieść swoje prawa za pomocą sudopolecenia. poprosi Cię wtedy o podanie hasła i staniesz się „rootem” dla danego polecenia.
Videonauth,

czy teraz, jeśli „shadi” był plikiem, mogę go usunąć za pomocą użytkownika „sinoosh”. nie jest wymagane „sudo” to nie jest dla mnie scena, dlaczego nie działa z katalogiem
Sinoosh

6

Spróbuj tego:

sudo rm -r ./shadi

Uprawnienia pokazują root root i root grupy, więc musisz używać sudo.


1
Tak, to polecenie jest w porządku, ale moim problemem jest to, dlaczego rm nie działa z tymi uprawnieniami, mam pełne uprawnienia do tego katalogu w innym polu
Sinoosh

„Mam pełne uprawnienia do tego katalogu” Nie, nie masz. „inne pole” shadi nie jest „innymi”.
Rinzwind

ale „sinoosh” należy do innych i wykonuje „rm -r shadi”
Sinoosh

0

To różne konta.

Jak można oczekiwać bezpieczeństwa od konta, gdyby wszyscy mieli uprawnienia do usunięcia katalogu domowego?

wDomyślnie nie masz uprawnień do usuwania katalogu domowego innej osoby, chyba że chmod +wona to zrobi .

Oto różne uprawnienia i przykład ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | u | g | o |
+ - + - + - + - +
| r | 1 | 1 | 1 |
+ - + - + - + - +
| w | 2 | 2 | 2 |
+ - + - + - + - +
| x | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
To idzie tak: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, tak 750, to jest system uprawnień idealny. Właściciel ( uw tym przypadku) może odczytać, zapisać i wykonać plik, grupa właściciela ( gw tym przypadku) może odczytać i wykonać, a nikt inny ( ow tym przypadku) nie może nic zrobić. To jest legendarne:
u: bieżący użytkownik (użytkownik)
g: grupy obecnych użytkowników (Grupy)
o: nie bieżące grupy użytkowników (Inne)
r: uprawnienie do odczytu (odczyt)
w: uprawnienie do zapisu (zapis)
x: wykonaj uprawnienie (X-ecute)
.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.