Как я могу добавить существующего пользователя к существующему идентификатору группы (не имени группы)?

Я хочу добавить существующего пользователя, foo в существующую группу, докер .Проблема в том, что на моем компьютере есть две группы с одинаковым именем docker , одна с идентификатором 131, а другая 999. Я хочу добавить foo в группу docker 999. Следующая команда добавляет только foo в группу 131 docker :

sudo usermod -aG docker foo

Как вместо этого добавить в группу docker с идентификатором 999?

Обновить : после дальнейшего просмотра я понимаю, что только группа docker 131 указана в / etc / group :

$ cat /etc/group | grep docker
docker:x:131:Steve,Mark,Emmy,user1,foo

Я понятия не имею, где 999 docker, но следующий пользователь может запускать docker без sudo:

$ id user1
uid=260800(user1) gid=5000(student) groups=5001(sudoaccess),999(docker),27(sudo),124(sambashare),13010(eestaff),131(docker)

, а пользователь foo не может:

$ id foo
uid=305800(foo) gid=5000(student) groups=27(sudo),131(docker)
2
задан 10 June 2021 в 17:57

2 ответа

Таким образом, это оказывается проблемой XY

  1. , как указано (X) «Как добавить существующего пользователя к существующему идентификатору группы (не имени группы)?»

  2. актуальная проблема (Y) «Что мне делать, если файлы / etc / group и / etc / gshadow не согласны с числовым GID группы?»


X . Как добавить существующего пользователя к существующему идентификатору группы (не имени группы)?

Это не явно указано на странице руководства, но usermod примет числовой GID в качестве аргумента для обоих -g Параметры (основная группа) и -G (вторичные группы), по крайней мере, как проверено на Ubuntu 18.04.

Пр. учитывая

$ groups testuser
testuser : testuser staff

$ getent group ftp
ftp:x:134:

, затем

$ sudo usermod -aG 134 testuser

$ groups testuser
testuser : testuser staff ftp

Y. Что мне делать, если файлы / etc / group и / etc / gshadow не согласны с числовым GID группы?

Для этого есть инструмент командной строки, входящий в состав пакета passwd :

 NAME 
grpck - проверка целостности файлов группы 
 
SYNOPSIS 
grpck [options] [group [ shadow]] 
 
ОПИСАНИЕ 
Команда grpck проверяет целостность информации о группах.Он 
проверяет, что все записи в / etc / group и / etc / gshadow имеют правильный формат 
и содержат допустимые данные. Пользователю предлагается удалить записи 
, которые имеют неправильный формат или другие неисправимые ошибки. 
 
Выполняются проверки, чтобы убедиться, что каждая запись содержит: 
 {{ 1}} · правильное количество полей 
 
 · уникальное и действительное название группы 
 
 · действительный идентификатор группы (только / etc / group) {{ 1}} 
 · действительный список участников и администраторов 
 
 · соответствующая запись в файле / etc / gshadow (соответственно 
 / etc / group для gshadow проверяет) 
 

Чтобы проверить несоответствие, сначала запустите в режиме только для чтения:

sudo grpck -r

(повышенные привилегии требуются даже здесь, потому что / etc / gshadow доступен для чтения только root ). Затем, как только вы определили проблему, запустите ее снова в интерактивном режиме, чтобы исправить проблемы:

sudo grpck

Существует аналогичная утилита pwck для обеспечения согласованности между / etc / passwd и / etc / тень .

4
ответ дан 28 July 2021 в 11:30

TL; DR , чтобы ответить на вопрос, связанный с заголовком, подпишитесь на сообщение @steeldriver, также известное как. usermod также работает с идентификатором группы. Приведенное ниже решение специально предназначено для проблемы, описанной в тексте OP.

По-видимому, проблема решается путем редактирования / etc / group и изменения идентификатора группы докеров 131 на 999 . После выхода и повторного входа у меня осталась только одна группа докеров - группа 999 .

$ id foo
uid=305800(foo) gid=5000(student) groups=27(sudo),999(docker)

Я очень надеюсь, что изменение / etc / group не приведет к каким-либо странным действиям. Корень проблемы все еще неизвестен (вход на сервер также управляется системой LDAP, поэтому, возможно, они мешают друг другу).

1
ответ дан 28 July 2021 в 11:30

Другие вопросы по тегам:

Похожие вопросы: