web-dev-qa-db-ja.com

useruidと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をチェックするとgid999に設定されます。

Sudo adduser --uid 1234567 nexusを実行すると、ユーザーIDとグループIDが同じに設定されます。

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
4
Fadi

トムヤンのおかげで、同じ名前のグループを作成してユーザーをそのグループに追加することで、問題を解決できました。だから私は次のことをしました:

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