Dlaczego nie mogę usunąć pliku, do którego mam uprawnienia do zapisu grupowego?


26

Mam plik z następującymi uprawnieniami:

root:datai chmodustawiony na 775.

Mój normalny użytkownik, nazwijmy go babą, jest w datagrupie.

Dlaczego nie mogę usunąć pliku za pomocą boby użytkownika?

 rwxrwxr-x 18 root data 4096 30.12.2011 22:02
 mój użytkownik jest w danych grupy, ale nie może zapisywać w pamięci

Odpowiedzi:


32

Ponieważ usuwając plik, nie tylko modyfikujesz plik, ale także modyfikujesz jego katalog.

Więc jeśli twój plik to:

rwxrwxr-x

Byłbyś w stanie zrobić:

cp /dev/null <filename>

Ale jeśli uprawnienia do katalogu to:

rwxr-xr-x  root  data  <directory name>

Następnie system zapobiegnie usunięciu pliku.


Mam w katalogu drwxrwxr-x, myślę, że ma to coś wspólnego z
literą

2
@ user56301 d wskazuje tylko, że ten plik jest katalogiem. Jaka jest własność katalogu?
Karlson,

drwxrwxr-x 18 root data
danidacar

Spróbuj uruchomić jako użytkownik bobynastępujące:cd <directory> ; touch test_file ; rm test_file
Karlson

@ user56301 czy możesz utworzyć plik w tym katalogu? jeśli nie możesz, to zdecydowanie nie możesz usunąć pliku.
Rich Homolka,

12

Usuwanie plików odbywa się na podstawie uprawnień do katalogów, a nie do uprawnień do plików (*).

Czy masz uprawnienia do zapisu w katalogu zawierającym plik?

(*) Zastrzeżenie, możesz mieć katalog, w którym wymuszasz, że tylko właściciel pliku może go usunąć. Jest to przydatne w przypadku katalogów tymczasowych.


Zobacz także: superuser.com/questions/784952/…, gdzie omówiono to samo.
Meetai.com

1

Jeśli katalog zawierający nie pozwala użytkownikowi bobyani datagrupie na pisanie do niego, to wyjaśniałoby to zachowanie.


2
Więc cała ścieżka wymaga pozwolenia grupy? Tak to działa.
danidacar

1
@ użytkownik: Nie cała ścieżka - tylko bezpośredni katalog nadrzędny pliku. Zmieniasz tylko zawartość katalogu. Te wyższe rodzice nie mają znaczenia w ogóle .
grawitacja

Aktualizuję odpowiedzi
danidacar,

1
To nie do końca prawda. Potrzebujesz tylko uprawnień do zapisu w zawierającym katalogu. Perms mogą być dowolnymi użytkownikami, grupami lub innymi użytkownikami, nie muszą to być perms grupowe, które pozwalają.
Rich Homolka

@Rich: AFAIK, sprawdzany jest tylko jeden zestaw. Jeśli jesteś właścicielem, system będzie sprawdzał tylko uprawnienia „właściciela”, nie „grupy” ani „innych”. Jeśli jesteś w grupie, system nie będzie sprawdzał pozwoleń „innych”. ( touch foo; chmod 6 foo; ls -l foo; cat foo)
grawity

1

Próbowałem tego samego i napotkałem ten sam problem.

Rozpoczęcie nowej sesji terminala problem. Można to osiągnąć poprzez:

  1. Wylogowanie i ponowne zalogowanie
  2. Przechodzenie do jednego z 6 tty (Ctrl + Alt + F1-6) (Uwaga: Ctrl + Alt + F7 to sesja GUI)
  3. za pomocą, su bobyaby rozpocząć nową sesję dla użytkownika boby.

Twoje zdrowie!


Wspomina, że ​​jest już zalogowany jako boby
Kanadyjczyk Luke REINSTATE MONICA

Musi się ponownie zalogować, ponieważ boby- stara sesja wydaje się nieaktualna i nie odzwierciedla zmian w powiązaniu z grupą.
Here Be Wolves

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.