Вопрос: useradd пользователь с группой с такими же uid и gid


Я хочу добавить пользователя с именем «nexus» с uid как 1234567 (номер примера) и gid 1234567.

Я выполняю следующую команду:

sudo useradd -r -U -u 1234567 -g 1234567 -m -c "nexus role account" -d /sonatype-work -s /bin/false nexus

Но я получаю сообщение об ошибке:

useradd: group '1234567' does not exist

И если я это сделаю:

sudo useradd -r -U -u 1234567 -m -c "nexus role account" -d /sonatype-work -s /bin/false nexus

Затем, когда я проверяю id -u nexus он показывает правильные uid (1234567), но когда я проверяю id -g nexus  gid для 999,

Если я сделаю sudo adduser --uid 1234567 nexus то идентификаторы пользователя и группы устанавливаются одинаково.

Могу ли я сделать то же самое с useradd или я должен использовать adduser для достижения моей цели?

Я следил за этим учебным курсом:

http://www.tecmint.com/add-users-in-linux/

P.S .: Если мне нужно использовать adduser то я могу сделать это без какого-либо человеческого взаимодействия; i.e: автоматизировать создание пользователя с помощью скрипта?

РЕДАКТИРОВАТЬ:

Это результат sudo adduser --uid 1234567 nexus

Adding user `nexus' ...
Adding new group `nexus' (1234567) ...
Adding new user `nexus' (1234567) with group `nexus' ...
The home directory `/home/nexus' already exists.  Not copying from `/etc/skel'.
adduser: Warning: The home directory `/home/nexus' does not belong to the user you are currently creating.
Enter new UNIX password: 
Retype new UNIX password: 
No password supplied
Enter new UNIX password: 
Retype new UNIX password: 
No password supplied
Enter new UNIX password: 
Retype new UNIX password: 
No password supplied
passwd: Authentication token manipulation error
passwd: password unchanged
Try again? [y/N] n
Changing the user information for nexus
Enter the new value, or press ENTER for the default
    Full Name []: Nexus
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] y

2
2018-02-10 20:45


Источник


Я думаю, вам нужно сделать groupadd сначала, если вы хотите создать пользователя с помощью SPECIFIC uid AND gid. - Tom Yan
Я думал, что -U сделаю это для меня ..: S - Fadi


Ответы:


Откровенно, Я думаю, что это ошибка (функция). Документация указывает, что вы можете использовать опцию -U для одновременного создания пользователя и группы одновременно. Интуитивно вы могли бы подумать, что в таком случае он примет значение из флага -g и создаст группу соответственно.

[root@centos4]# useradd -U -u 200 -g 200 -m -d /home/ansible -s /usr/bin/bash ansible
useradd: group '200' does not exist

Пример выше аналогичен вашей команде useradd. Однако, если я просто удаляю аргумент '-g 200', он работает немедленно. Хотя, к сожалению, кажется, что gid выделяется стандартным методом.

[root@centos4]# useradd -U -u 200 -m -d /home/ansible -s /usr/bin/bash ansible
[root@centos4]# egrep ansible /etc/passwd
ansible:x:200:1000::/home/ansible:/usr/bin/bash
[root@centos4]# egrep ansible /etc/group
ansible:x:1000:

Ответ на ваш вопрос заключается в том, что если вы хотите добавить пользователя и группу одновременно, вам нужно удалить параметр -g. Это не так элегантно, как вы и я надеялись, но лучше, чем ничего.

Надеюсь, это поможет. Береги себя.


1
2017-10-10 22:19





Благодаря Tom Yan, я решил решить проблему, создав группу с тем же именем, а затем добавил пользователя в эту группу. Поэтому я сделал следующее:

sudo groupadd -r -g 1234567 nexus \
  && sudo useradd -r -u 1234567 -g 1234567 -m -c "nexus role account" -d /sonatype-work -s /bin/false nexus

0
2018-02-11 14:44