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

11308
Fadi

Я хочу добавить пользователя с именем "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 nexusgid999

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

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

Я следовал этому уроку между прочим:

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

PS: если я должен использовать, adduserто могу ли я сделать это без какого-либо человеческого взаимодействия; То есть: автоматизировать создание пользователя через скрипт?

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

Это результат 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 
3
Я думаю, что вам нужно сначала сделать `groupadd`, если вы хотите создать пользователя с КОНКРЕТНЫМ uid И gid. Tom Yan 8 лет назад 0
Я думал, что `` `-U``` сделает это для меня ..: S Fadi 8 лет назад 0

2 ответа на вопрос

1
Fadi

Thanks to Tom Yan, I've ended up solving my issue by creating a group with the same name then added the user to that group. So I did the following:

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 
1
Peter Rhodes

Честно говоря, я думаю, что это ошибка (функция). В документации указано, что вы можете использовать опцию -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', он сразу сработает Хотя, к сожалению, похоже, что гид выделяется стандартным методом.

[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. Это не так элегантно, как вы и я надеялись, но лучше, чем ничего.

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

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