web-dev-qa-db-ja.com

ホームディレクトリが作成されていません

Ubuntuのシステム管理を理解しようとしています。そのため、例として、次を使用してダミーのユーザーを作成します

Sudo useradd -d /home/linda linda

およびpasswdはパスワードを作成します。 cat /etc/passwdを使用してエントリが作成されたことを確認します

linda:x:1004:1004::/home/linda:/bin/sh

ただし、su - lindaの場合、

No directory, logging in with HOME=/

実際、ホームディレクトリは作成されていません。私は何が欠けていますか?

ありがとう。

79
tchakravarty

man useradd状態:

useradd is a low level utility for adding users. On Debian,
administrators should usually use adduser(8) instead.

low level utilityに注意してください

ユーザーを追加するには、代わりにadduserを使用します。より高レベルのユーティリティです。


さらに、-dオプションを見ると:

   -d, --home HOME_DIR
       The new user will be created using HOME_DIR as the value for the
       user's login directory. The default is to append the LOGIN name to
       BASE_DIR and use that as the login directory name. The directory
       HOME_DIR does not have to exist but will not be created if it is
       missing.

The directory will not be created if it is missing.

通常、useraddには近づかないで、代わりにadduserを使用します。

87
gniourf_gniourf

ホームディレクトリを作成するだけでこれを修正できます。

mkdir /home/linda
chown linda:linda /home/linda

もう一度ログインしてみてください。これで機能するはずです。

30
OmPS

man useraddによると、-d /home/lindaオプションは、/home/lindaが存在しない場合、ディレクトリを作成しません。そのため、手動で作成する必要があります。これを行うには、ターミナルで次のコマンドを実行します。

Sudo -i                            #to get root privileges
mkdir /home/linda                  #to create the directory /home/linda
cp -rT /etc/skel /home/linda         #to populate /home/linda with default files and folders
chown -R linda:linda /home/linda   #to change the owner of /home/linda to user linda

参照: アカウント作成後にユーザーのホームフォルダを作成する方法?

13
Radu Rădeanu

デフォルトを変更する場合は、/etc/defaults/useraddを見てください。つかいます:

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

7
beanhead

-mの代わりに-dを使用すると、ディレクトリが作成されます。

Sudo useradd -m linda

また、lindaが通常のユーザーである場合、/bin/bashをデフォルトのShellとして使用することもできます。

Sudo useradd -m linda -s /bin/bash

5
p1100i

/etc/pam.d/common-sessionを変更して、最初のログイン時にユーザーのホームディレクトリが作成されるようにすることもできます。そのファイルに次の行を追加します。

...
session required pam_mkhomedir.so

これは、ユーザーのマシンがLDAPなどによって外部で管理されているネットワーク上にシステムがある場合に特に便利です。

5
KevinC

/etc/login.defsに以下のエントリを追加して保存します。

CREATE_HOME yes

次に、ユーザーアカウントを作成してみます。ホームディレクトリが作成されます。

3
kavin

ホームディレクトリが作成されなかった最も可能性の高い理由は、CREATE_HOME yes/etc/login.defsがなかったためです。

これを修正するには、@ OmPSまたは@RaduRădeanuが提案したことに従ってください。

しかし、以下のコマンドのいずれかを使用して、将来この問題を克服する多くの方法:

  • Sudo adduser lindaの結果

    Adding user 'linda'
    Adding new group 'linda' (1001) ...
    Adding new user 'linda' (1001) with group 'linda' ...
    Creating home directory '/home/linda' ...
    Copying files from '/etc/skel' ...
    ****Password confirmation****
    ****Name Prompt****
    

    /etc/adduser.confオプションが指定されていない場合、adduserのデフォルトは--homeから選択されます。 /etc/skelの内容もコピーすることに注意してください。

  • --homeでadduserを使用します

    Sudo adduser --home /home/linda
    

以前のオプションと同じですが、ユーザーのホームディレクトリが割り当てたユーザー名と異なる場合に必要になる場合があります。

  • useraddコマンドにベースディレクトリを指定します。

    Sudo useradd -b /home
    
  • Login.defsを使用します。/etc/login.defsを実行する前に、Sudo useraddを変更し、以下の行を追加します。

    CREATE_HOME   yes
    

注:man login.defsを実行すると、現在、

シャドウパスワードスイートによって提供されていた機能の多くは現在PAMによって処理されています。したがって、/ etc/login.defsはもはやpasswd(1)によって使用されず、login(1)によって使用されることも少なくなりました。 、およびsu(1)。代わりに、対応するPAM構成ファイルを参照してください。

  • Pam_mkhomedir PAMモジュールを使用します。man pam_mkhomedirページから、以下の行を/etc/pam.d/loginに追加します。

    session  required  pam_mkhomedir.so skel=/etc/skel
    

adduserを使用します。

DESCRIPTION

 adduser  and  addgroup  add users and groups to the system according to
   command    line    options    and    configuration    information    in
   /etc/adduser.conf.   They  are  friendlier  front ends to the low level
   tools like useradd, groupadd and usermod programs, by default  choosing
   Debian  policy conformant UID and GID values, creating a home directory
   with skeletal configuration, running a custom script,  and  other  fea‐
   tures.  adduser and addgroup can be run in one of five modes:

useraddすべてのオプションを自分で追加する必要があります。許可などいくつかのことを含めると、adduserがこれを正常なデフォルトに基づいて実行します(また、home dir自体を追加します)。

Adduserを使用する必要がある場合は、おそらく-bオプションと-dオプションが必要です!

1
Rinzwind

Lindaをユーザーとして追加する前に/home/lindaが存在しない場合は、--create-homeも追加する必要があります。

Sudo useradd --create-home linda
0
Abel Tom