При добавлении пользователя как это:
sudo adduser someuser --ingroup sudo
Добавленный пользователь может использовать sudo
но он не находится в /etc/group
sudo, ни в /etc/sudoers
Таким образом, как это работает?
Ваш adduser
наборы команд основная группа пользователя к sudo
.
От man adduser
:
By default, each user in Debian GNU/Linux is given a corresponding
group with the same name. [ ... ] Users' primary
groups can also be overridden from the command line with the --gid or
--ingroup options to set the group by id or name, respectively.
[ ... ]
--ingroup GROUP
Add the new user to GROUP instead of a usergroup or the default
group defined by USERS_GID in the configuration file. This
affects the users primary group. To add additional groups, see
the add_extra_groups option
У основной группы обычно есть то же имя и идентификатор как пользователь. Это не хранится в /etc/group
но в /etc/passwd
, как это:
bytecommander:x:1000:1000:ByteCommander,,,:/home/bytecommander:/bin/bash
4-е :
- разделенное поле содержит GID (идентификатор группы) основной группы пользователя.
Теперь /etc/group
содержит список всех групп и связывает пользователей, которые имеют эту группу как дополнительную (не основной) группа, как это:
sudo:x:27:bytecommander
Различие между основными и дополнительными группами также видимо в выводе id
команда (форматирующий мной):
$ id
uid=1000(bytecommander)
gid=1000(bytecommander)
groups=1000(bytecommander),27(sudo)
Из чего важно для использования sudo
только членство в sudo
группа, это не отличает основное и вторичное членство. Ответственная строка конфигурации может быть найдена в /etc/sudoers
и похож на это:
%sudo ALL=(ALL:ALL) ALL
Эта строка предоставляет всем членам sudo
сгруппируйте автоматически полные полномочия выполнить любую команду как любого пользователя, не имея необходимость указывать каждого пользователя вручную.
--ingroup
опция adduser
изменяется/добавляет Основную группу добавленного пользователя, и основная группа пользователя хранится в /etc/passwd
, файл, в :
разделил четвертое поле как числовой GID.
Так sudo
читает /etc/passwd
файл и находит, что у пользователя someuser
есть основная группа sudo
, таким образом, sudo
команды работают отлично.
Теперь, /etc/group
sudo
запись группы все еще не показала бы членство, потому что /etc/group
только хранилища вторичный состав группы, не основной.