Uprawnienia grupy Linux nie są poprawnie egzekwowane.

18

Korzystam z serwera Ubuntu 10.04 i mam pewne sprzeczne z intuicją doświadczenia z użytkownikami / grupami. Na przykład:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

Ostatni wiersz powoduje błąd uprawnień.

Zapewniłem, że mój użytkownik należy do grupy „testowej” ( groups {my-user}potwierdza to). Grupa pliku test_file jest również zdecydowanie ustawiona na „test”, a uprawnienia grupy są ustawione.

Dlaczego mój użytkownik nie może zapisać pliku testowego pliku?

Gordon
źródło

Odpowiedzi:

29

Podczas dodawania użytkownika do nowej grupy nie będzie on stosowany w żadnych aktualnie uruchomionych procesach, tylko w nowych procesach. Musisz się wylogować, a następnie zalogować ponownie.

Daenyth
źródło
4
lub włam się su - usernamedo działającej konsoli. nie musisz się wylogowywać, aby zalogować w ten sposób :)
matthias krull
5

Zarówno wylogowanie, jak i zrestartowanie metod serwera nie działało dla mnie.

Ta metoda jednak działa dla mnie: (odniesienie do tej odpowiedzi )

chmod g+rwxs <parent folder>
suma kontrolna
źródło
1
Co robi ta +sczęść? Dzięki.
tommy.carstensen
1
Ustawia bit setuid. Pozwala to na uruchomienie pliku jako właściciela pliku. Załóżmy, że masz plik, który chcesz uruchomić jako root, bez względu na to, kto go uruchamia, ustaw bit setuid dla tego pliku.
Julius
Kluczem było x: wygląda na to, że touchdo działania potrzebne są uprawnienia do wykonywania.
asac - Przywróć Monikę
0

Za pomocą tego newgrppolecenia można zmienić bieżący identyfikator grupy użytkownika. Od man newgrp:

Polecenie newgrp służy do zmiany bieżącego identyfikatora grupy podczas sesji logowania. Jeśli -podano opcjonalną flagę, środowisko użytkownika zostanie ponownie zainicjowane, tak jakby użytkownik się zalogował, w przeciwnym razie bieżące środowisko, w tym bieżący katalog roboczy, pozostanie niezmienione.

Wstrzymano do odwołania.
źródło
1
Skutkuje to również zastąpieniem bieżącej grupy. To nie zawsze jest dobry pomysł.
Daenyth
Głosowałbym za tym, gdybym mógł. Zastępowanie grup może w przyszłości być bardzo frustrujące ... zwłaszcza. z -Ropcją!
Edward
0

Uruchom ponownie komputer, aby upewnić się, że żadne zablokowane procesy nie uniemożliwiają poprawnego egzekwowania użytkownika i grup podczas wylogowywania i logowania.

Te kroki powinny dać użytkownikowi grupy testuprawnienie do zapisutest_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Uruchom ponownie komputer lub wyloguj się z systemu operacyjnego użytkownika. Ponowne uruchomienie terminala nie wystarczy.

touch test_file

Użytkownik może pisać do pliku, ponieważ jest on częścią grupy „testowej”, a grupa ma uprawnienia rwx.

Eric Leschinski
źródło
3
Nie ma wymogu, aby ponownie uruchomić komputer.
Kevin Panko