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
Sinoosh
źródło

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

Rohith
źródło
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
Videonauth
źródło
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.

Bruni
źródło
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)
.

EKons
źródło