Dlaczego użytkownik Linuksa nie może edytować plików w grupie, do której należy?
Używam Ubuntu 12.04 i miałem ten sam problem, gdy użytkownik nie może pisać do pliku, do którego ma dostęp grupowy. Na przykład:
whoami //I am user el
el
touch /foobar/test_file //make a new file
sudo chown root:www-data /foobar/test_file //User=root group=www-data
sudo chmod 474 /foobar/test_file //owner and others get only read,
//group gets rwx
sudo groupadd www-data //create group called www-data
groups //take a look at the groups and see
www-data //www-data exists.
groups el //see that el is part of www-data
el : www-data
Zrestartuj terminal teraz, aby upewnić się, że użytkownicy i grupy odniosły skutek. Zaloguj się jako el.
vi /foobar/test_file //try to edit the file.
Stwarza ostrzeżenie:
Warning: W10: Warning: Changing a readonly file"
Co? Zrobiłem wszystko dobrze, dlaczego to nie działa?
Odpowiedź:
Wykonaj pełny restart komputera. Zatrzymanie terminala nie wystarczy, aby rozwiązać te problemy.
Wydaje mi się, że apache2 używa również grupy www-data, więc zadanie w jakiś sposób uniemożliwiało poprawne wymuszanie użytkowników i grup. Nie tylko musisz się wylogować, ale musisz zatrzymać i ponownie uruchomić wszystkie usługi, które używają Twojej grupy. Jeśli ponowne uruchomienie się nie powiedzie, masz większe problemy.