Ubuntu 14.04:コマンドラインから作成された新しいユーザーに機能がありません


17

Ubuntu 14.04 LTSでbashコマンドラインから新しいユーザーを作成しようとしています。次のコマンドを使用します。

sudo useradd -c "Samwise the Brave" sam    
sudo passwd sam    
Enter new UNIX password: hello-1234    
Retype new UNIX password: hello-1234    
passwd: password updated successfully

この新しいユーザーを作成した後、3つの問題が発生しました。

  1. ユーザーsamを使用してUbuntuにログインできません。ログインするたびに、ログイン画面に戻ります。

  2. /etc/passwdファイルを調べると、ユーザーsam用に定義されたデフォルトのシェルがないことがわかります。

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. サムのホームフォルダーは作成されませんでした。つまり、 /home/samませんでした。存在しません。

これらすべての問題を引き起こす原因についての手がかりはありますか?

ここで、Unity Control Centerを使用してユーザーを作成するとき、これらの問題は発生しないことに注意してください。しかし、作成するユーザーが何十人もいるので、コマンドラインを使用できるようにしたいと思います。

回答:


29

最初に、useraddではなくadduserを使用した方が良いことに注意してください。

コマンドに戻ります。

次の方法でコマンドを実行する必要があります。

sudo useradd -m -c "Samwise the Brave" sam  -s /bin/bash 

man useradd

  -s, --shell SHELL
           The name of the user's login shell. The default is to leave this
           field blank, which causes the system to select the default login
           shell specified by the SHELL variable in /etc/default/useradd, or
           an empty string by default.

 -m, --create-home
           Create the user's home directory if it does not exist. The files
           and directories contained in the skeleton directory (which can be
           defined with the -k option) will be copied to the home directory.

           By default, if this option is not specified and CREATE_HOME is not
           enabled, no home directories are created.

その-sため、ログインシェルを追加したり-m、ホームを作成したりするのに失敗します。

複数のユーザーを同時に追加する場合は、コマンドを使用することをお勧めしますnewusers。タスクが簡素化されます。

man newusers

DESCRIPTION

   The newusers command reads a file of user name and clear-text password
   pairs and uses this information to update a group of existing users or
   to create new users. Each line is in the same format as the standard
   password file (see passwd(5)) with the exceptions explained below:

   pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

ここにnewusersコマンドに関するいくつかのチュートリアル:


「不明なオプションm」が表示されるのはなぜですか?14.04を実行しているAWS Ubuntuインスタンスにいます。
ドナート

2

ユーザーを作成

ユーザーのホームディレクトリを作成する

ログインシェルを定義する

useradd -m -d /home/username username -s /bin/bash

ユーザーを削除

削除ユーザーのホームディレクトリ

userdel -r username

1

フラグがなく、他の答えが必ずしも間違っているわけではありませんが、将来より包括的なものが必要な場合は、adduserの実行を検討してください。これはuseraddのきれいなバージョンです。つまり、useraddとは異なり、デフォルトでホームディレクトリを作成します。また、大量のものを要求すると、/ etc / passwdファイルにそのインラインを保存するため、記入する必要はありません。


1

みんな、ありがとう。あなたの答えで、私は次のコマンドラインを使用して問題を修正することができました。

sudo useradd -c "Samwise the Brave" -m -s /bin/bash sam
echo -e "hello-1234\nhello-1234" | passwd sam

パスワードはで設定されているpasswdため、既に暗号化されています(そうでない場合、「hello-1234」は/ etc / passwdで暗号化されていないように見えます)。


0

useraddコマンドにフラグがありません。「-m」はユーザーディレクトリを作成し、「-s / bin / bash」はbashシェルを追加します。デフォルトでは、ユーザーディレクトリは作成されず、デフォルトのシェルが割り当てられます。私のシステムはテスト時に同じことをしたので、ubuntu 14.04はデフォルトのシェルとしてブランクを使用しているように見えます。シェルがないためログインできません。

ターミナルで既存のユーザーのデフォルトのホームディレクトリを作成します(質問335961、3番目の回答)

useraddのUbuntu Manpageから

   -s, --shell SHELL
       The name of the user´s login shell. The default is to leave this
       field blank, which causes the system to select the default login
       shell.

すべてのユーザーのデフォルトシェルをbashに変更するにはどうすればよいですか?質問335961

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.