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

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.

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

Rich Homolka
źródło
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.

Andrew Lambert
źródło
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!

Here Be Wolves
źródło
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
1

Założę się, że plik, który próbujesz usunąć, znajduje się w / tmp.

Zobacz Linux - członek grupy nie może usunąć pliku z uprawnieniami rw

/ tmp zwykle ma ustawiony tryb „lepkiego” aka „ograniczonego usuwania” (o + t). Po ustawieniu tego trybu tylko właściciel pliku może przenosić lub usuwać pliki w tym katalogu bez względu na jakiekolwiek uprawnienia.

Dagelf
źródło