useradd でデフォルトのシェルが選択されていない

useradd でデフォルトのシェルが選択されていない

Ubuntu 16.04.1 の最新バージョンをインストールし、 を通じて新しいユーザー アカウントを作成しようとしました。の行を次のようにroot変更しました。SHELL/etc/default/useradd

SHELL=/bin/bash

(以前はこう書かれていました/bin/sh

実行するとuseradd -D次の出力が得られます。

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

次に、次のようにユーザーを作成してみます。

useradd -m -G sudo -c "David Buckley" david

しかし、デフォルトのシェルは依然として です/bin/sh。具体的には、/etc/passwdファイルは次のようになります。

david:x:1000:1000:David Buckley:/home/david:

少し関連しているかもしれませんが、新しいユーザーには sudo アクセス権がありません。 groups が付与されdavid sudo/etc/sudoersファイルには次の行 (コメントなし) が含まれます。

# Allow members of group sudo to execute any command
sudo    ALL=(ALL:ALL) ALL

これを引き起こす原因として、私が何を間違っているのでしょうか?

答え1

これは既知のバグUbuntu のuseradd(Ubuntu 固有のパッチによって追加)。指定されたすべての設定は無視されます/etc/default/useradd...

回避策は、maulinglawns の回答adduser代わりに、Debian 派生製品で非システム ユーザーを追加するための推奨ツールである を使用することをお勧めします。

答え2

奇妙なことに、昨日、Ubuntu 16.04 LTS を実行しているサーバーで私にも同じことが起こりました。

具体的な答えはないがなぜこのようなことが起こることがありますが、私の場合は簡単な解決策が役立ちました。
を使用せずuseraddadduser代わりに を使用してください。

説明

adduseraddgroup および のコマンドライン オプションと設定情報に従って、システムにユーザーとグループを追加します/etc/adduser.conf。これらは、、および プログラムなどの低レベル ツールの使いやすいフロントエンドであり、 デフォルト useraddで Debian ポリシーに準拠した UID と GID 値を選択し、スケルトン設定でホーム ディレクトリを作成し、カスタム スクリプトを実行し、その他の機能を備えています。groupaddusermod

についてはsudo、新しいグループ設定を有効にするには、そのユーザーをログアウトしてから再度ログインする必要があります。

こちらは良いリンクオンuseraddvs adduser

関連情報