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.