新しいユーザーを作成するときにホームディレクトリが作成されないのはなぜですか?

新しいユーザーを作成するときにホームディレクトリが作成されないのはなぜですか?

useraddUbuntuサーバー仮想マシンでコマンドを使用して新しいユーザー(testuser)を作成しました。ユーザーのホームディレクトリを作成し、root権限を付与したいと思います。

ところが新規でログインするとホームディレクトリがないと出てきます。私は何が間違っていましたか?

答え1

最後に、私はこれを自分で行う方法を見つけました。

   useradd -m -d /home/testuser/ -s /bin/bash -G sudo testuser

-mホームディレクトリがない場合は、新規作成します。
-dデフォルトのホームディレクトリの場所をオーバーライドします。 -sユーザーのログインシェルを設定します。
-Gユーザーが属するグループのカンマ区切りリストが必要です。

バラよりman useraddもっと学ぶ。

答え2

編集者ノート:この答えは質問に対して技術的に正確ですが、コメントの議論では、OPがuseraddそれをシェルコマンドとして直接使用せず、スクリプトで使用しようとし、そのadduserコンテキストに合わないことを明確にしました。

インタラクティブにユーザーを作成するときは、通常代わりに使用することをお勧めしadduserますuseradd

useraddは、ユーザーを追加するための低レベルユーティリティです。Debian では、
管理者は通常 adduser(8) を使用する必要があります。

adduseruseraddデフォルトでは、ユーザーディレクトリの作成などの操作を実行する、より使いやすいフロントエンドです。ユーザー名のみを引数として実行すると、パスワードなどの追加情報を入力するように求められます。

$ sudo adduser testuser
Adding user `testuser' ...
Adding new group `testuser' (1002) ...
Adding new user `testuser' (1002) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for testuser
Enter the new value, or press ENTER for the default
    Full Name []: 
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] 

通常、必要なグループも自動的に設定されるため、adduser代わりにuseを使用することをお勧めします。useradd説明したようにman adduser

adduserとaddgroupは、/etc/adduser.confのコマンドラインオプションと設定情報に基づいて、システムにユーザーとグループを追加します。 useradd、groupadd、usermod プログラムなどの低レベルツールのためのよりフレンドリーなフロントエンドであり、デフォルトでは Debian ポリシーに準拠する UID と GID 値を選択し、スケルトン構成でホームディレクトリを作成し、カスタムスクリプトを実行するなどタスクを実行します。機能。

答え3

useradd -m LOGIN

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

答え4

次のコマンドを使用したときにこれが起こりました。

sudo useradd -d /home/ssd2/yuwen yuwen

コマンドを入力した後、そのようなファイルはなく(cd確認するために&を使用してls)、それを使用するとsu yuwen新しいユーザーに正常に変更されますが、ホームディレクトリは変わりません(そうではありませんssd2/yuwen)。

cat /etc/passwdまた、新しいユーザーが作成されたことを確認するためにコマンドを使用しました。作成されましたが、ホームディレクトリは無効です。

私が説明したのと同じ状況にある場合、解決策は次のとおりです。

  1. スーパーユーザーアカウントを使用してLinuxサーバーにログインすると、次のことができます。sudo
  2. cd新しいユーザーディレクトリを配置するディレクトリを使用します。私の場合、ディレクトリは/home/ssd2
  3. 新しいユーザーのためのディレクトリを作成するためにmkdir私の場合mkdir yuwen
  4. sudo chown yuwen:yuwen /home/ssd2/yuwen新しいユーザーに所有権を付与するために使用されます。
  5. 使用sudo chmod -R yuwen /home/ssd2/yuwen、承認

その後、su yuwenを使用して正しいディレクトリにあることを確認できます。cd ~pwd

関連情報