Mam partycję ext4 i ustawiłem właściciela grupy dla wszystkich podkatalogów na mygroup:
# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc
Mój użytkownik należy do tej grupy. Wewnątrz tej partycji znajduje się folder, którego właścicielem jest użytkownik „nobody”, a teraz grupa „mygroup”. Mój użytkownik należy do „mojej grupy”. Oto ls -l:
myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody mygroup 4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody mygroup 4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser mygroup 159539 Apr 23 23:44 test.png*
myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...}
myuser@host:/mount/abc/folder$ rm test.png
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied
myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied
Pamiętaj, że nie mogę usunąć ani utworzyć pliku, który jest własnością grupy, której częścią jest mój użytkownik.
Chyba nie do końca rozumiem, jak działają grupy. Myślałem, że jeśli jesteś częścią grupy, odziedziczysz uprawnienia tej grupy. czy robię coś źle?
Dzięki
12.04
permissions
Chaos
źródło
źródło
Odpowiedzi:
Czy ostatnio dodałeś tego użytkownika do tej grupy, nie wylogowując się / pomiędzy nimi? Następnie „grupy” pokażą grupę, ale użytkownik nie ma jeszcze uprawnień do grupy.
Możesz pokazać swoje skuteczne grupy za pomocą
Na przykład, jeśli dodam mojego użytkownika
ps
do grupy,fax
a następnie wpiszęnie pokazuje grupy
fax
, alepokazuje
fax
.Wykonanie czynności na
su
rzecz własnego użytkownika daje nową przynależność do grupy:Dane wyjściowe zawierają teraz również
fax
.źródło
sudo
i używam go regularnie. Błąd, który pokazałem, narzeka, że polecenieubuntu
(tj. Nazwa użytkownika) nie jest rozpoznanym poleceniem. Nie sądzę, aby twoja sugestia była poprawna pod względem składniowym - być może działa w twoim przypadku, ponieważps
zdarza się, że jest to także polecenie, a także nazwa użytkownika.su <username>
. Zredagowałem post.Zastosowana metoda wydaje się być poprawna. Właśnie teraz próbowałem go powtórzyć i zadziałało dobrze.
Nie jestem pewien, czy jest literówka, ale jest niewielki problem z poleceniem. Nie ma potrzeby wspominania o „mojej grupie”. Następujące prace
Nawet możesz usunąć
s
bit, po prostu zróbg+rwx
. Po zmianie uprawnień i dokonaniu zmianls -l
, powinno wyświetlić odpowiednie uprawnienia.źródło
Nie można usunąć pliku, ponieważ grupa
mygroup
nie ma uprawnień do zapisu zarówno w pliku,test.png
jak i folderze. Aby operacje zapisu działały na pliku, uprawnienia do pliku powinny wyglądać następująco:Jeśli przyjrzysz się bliżej formatowi uprawnień
Pierwsze trzy zastępcze
uuu
są dowolnie R EAD w rytu e x ecute. Następne trzy symbole zastępczeggg
dotyczą grupy iooo
innych. W fragmencie wysłana przez grupy OP brakuje w obrządku zgody.źródło
Aby dodać do zaakceptowanej odpowiedzi (ponieważ nie mogę jeszcze komentować):
Jeśli używasz oprogramowania takiego jak BitVise do utworzenia połączenia SSH z serwerem, samo zamknięcie i ponowne otwarcie terminala nie będzie się liczyło jako logowanie i wylogowywanie. To będzie robić takie rzeczy jak przeładować
~/.bashrc
, ale nie wykonywać rzeczywiste aktualizacje grupowych (jeśli dodano grupę w sesji „login”). Aby to zadziałało, musisz się w pełni wylogować i zalogować ponownie przy użyciu klucza SSH / poświadczeń.źródło
Katalogi wymagają zestawu bitów x (dla katalogu ten bit jest postrzegany jako bit wyszukiwania), aby otworzyć. Używam więc drzewa, aby uzyskać tylko zestaw folderów i uniknąć koszmaru ustawiania wszystkich plików jako plików wykonywalnych (opcja dla drzewa to
-d List directories only.
):Ostrzeżenie!!! powinieneś wziąć to pod uwagę:
użycie chmod lub chown rekursywnego w
/
katalogu głównym lub katalogach systemowych zniszczy Twój system operacyjny (właściwie wszystko, co rekurencyjne w/
katalogu lub katalogach systemowych jest niebezpieczne)nie jest dobrą praktyką bezpieczeństwa ustawiać takie uprawnienia zbiorcze
źródło