Может ли пользователь Linux входить в несколько групп?
Если бы это было разрешено, то один пользователь мог бы получить доступ к файлам из двух групп, это было бы совсем здорово!
Если нет, есть ли альтернативный способ реализовать эту функцию?
Эта проблема не то же самое, чтоОбеспечение принадлежности новых файлов в каталоге к группеилиПомогите мне разобраться с правами доступа пользователей/групп в Ubuntu
решение1
Да, пользовательможет быть членом нескольких групп:
Пользователи организованы в группы, каждый пользователь состоит как минимум в одной группе и может состоять в других группах. Членство в группе дает вам особый доступ к файлам и каталогам, которые разрешены для этой группы.
Например, вы можете добавить пользователя username
в группы group1
и group2
с помощью следующихusermod
команда:
usermod -a -G group1,group2 username
решение2
Да, обычный пользователь Unix может быть членом нескольких групп.
Однако, есть толькоодингруппа из которых является пользователемпервичная группа.
При добавлении пользователя, например, с помощью adduser
, можно указать основную группу с помощью --ingroup
параметра и добавить несколько вторичных групп, как в Debian/Ubuntu и подобных:
$ # 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
Проверить, членом какого пользователя вы являетесь, можно с помощью id
:
$ id
uid=1000(gert) gid=1000(gert) groups=1000(gert),4(superusers),5(debianfans)
^^^ ^^^^^^
primary secondary
group groups
Также для других пользователей, просто передав их имя пользователя в качестве первого аргумента id
.
Вы можете изменить основную группу пользователя, используя опцию -g
( --gid
)usermod
$ usermod -g new_primary_group username
решение3
Да, см. другие ответы. Альтернативой являются списки контроля доступа.
setfacl
getfacl
Каждый файл может иметь список пользователей и групп, которые могут к нему получить доступ.
Человек — это один пользователь и много групп (группы могут быть установлены только администратором/пользователем root). Файл обычно имеет одного владельца-пользователя и одну группу, с ACL это может быть один владелец-пользователь, плюс много других пользователей, плюс много групп.
Что использовать, зависит от того, что вам нужно. ACL могут быть панелью для использования, но не требуют администратора (кроме установки и включения, обычно не устанавливаются по умолчанию). Другой способ проще, но менее мощный.