Czy użytkownik systemu Linux może należeć do więcej niż jednej grupy?

18

Czy użytkownik systemu Linux może należeć do więcej niż jednej grupy?

Jeśli jest to dozwolone, to jedno użycie może uzyskać dostęp do plików z dwóch grup, byłoby to całkiem miłe!

Jeśli nie, to czy jest jakiś alternatywny sposób, aby mieć tę funkcję?

Ten problem nie jest taki sam, jak Zapewnienie, że nowe pliki w katalogu należą do grupy lub Pomóż mi zrozumieć uprawnienia użytkownika / grupy Ubuntu

hugemeow
źródło

Odpowiedzi:

17

Tak, użytkownik może należeć do wielu grup :

Użytkownicy są podzieleni na grupy, każdy użytkownik należy do co najmniej jednej grupy i może należeć do innych grup. Członkostwo w grupie zapewnia specjalny dostęp do plików i katalogów, które są dozwolone dla tej grupy.

Na przykład, można dodać użytkownika usernamedo grup group1i group2z następującym usermodpoleceniem:

usermod -a -G group1,group2 username
slhck
źródło
14

Tak, zwykły użytkownik unix może być członkiem wielu grup.

Istnieje jednak tylko jedna grupa, która jest grupą podstawową użytkownika .

Podczas dodawania użytkownika, na przykład za pomocą adduser, można określić grupę podstawową za pomocą --ingroupopcji i dodać wiele grup pomocniczych takich jak ta w Debian / Ubuntu i tym podobne:

$ # would create user gert and group gert
$ sudo adduser gert

$ # same, but no group 'gert' will be created, but made member of the existing
$ # group 'adm'
$ sudo adduser gert --ingroup adm

$ # secondary groups
$ sudo adduser gert superusers
Adding user `gert' to group `superusers' ...
Adding user gert to group superusers
Done.
$ sudo adduser gert debianfans

Sprawdzanie, do którego użytkownika należy użytkownik, można wykonać za pomocą id:

$ id
uid=1000(gert) gid=1000(gert) groups=1000(gert),4(superusers),5(debianfans)
               ^^^            ^^^^^^
               primary        secondary
               group          groups

Również dla innych użytkowników, po prostu przekazując ich nazwę użytkownika jako pierwszy argument id.

Możesz zmienić podstawową grupę użytkownika za pomocą opcji -g( --gid)usermod

$ usermod -g new_primary_group username
gertvdijk
źródło
1

Tak, zobacz inne odpowiedzi. i Alternatywą są listy kontroli dostępu.

setfacl
getfacl

Każdy plik może mieć listę użytkowników i grup, którzy mogą uzyskać do niego dostęp.

Osoba jest jednym użytkownikiem i wieloma grupami (grupy mogą być ustawione tylko przez administratora / użytkownika root). Plik to zwykle jeden użytkownik będący właścicielem i jedna grupa, w przypadku list ACL może to być jeden użytkownik będący właścicielem oraz wielu innych użytkowników i wiele grup.

To, którego używasz, zależy od tego, czego potrzebujesz. Listy ACL mogą być oknem do użycia, ale nie wymagają administratora (z wyjątkiem instalacji i włączenia, zwykle nie jest instalowana jako moja domyślna). Drugi sposób jest prostszy, ale mniej wydajny.

ctrl-alt-delor
źródło