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=/
実際、ホームディレクトリは作成されていません。私は何が欠けていますか?
ありがとう。
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
を使用します。
ホームディレクトリを作成するだけでこれを修正できます。
mkdir /home/linda
chown linda:linda /home/linda
もう一度ログインしてみてください。これで機能するはずです。
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
デフォルトを変更する場合は、/etc/defaults/useradd
を見てください。つかいます:
useradd -m -d /home/joe -s /bin/bash
。
-m
の代わりに-d
を使用すると、ディレクトリが作成されます。
Sudo useradd -m linda
また、linda
が通常のユーザーである場合、/bin/bash
をデフォルトのShell
として使用することもできます。
Sudo useradd -m linda -s /bin/bash
/etc/pam.d/common-session
を変更して、最初のログイン時にユーザーのホームディレクトリが作成されるようにすることもできます。そのファイルに次の行を追加します。
...
session required pam_mkhomedir.so
これは、ユーザーのマシンがLDAPなどによって外部で管理されているネットワーク上にシステムがある場合に特に便利です。
/etc/login.defs
に以下のエントリを追加して保存します。
CREATE_HOME yes
次に、ユーザーアカウントを作成してみます。ホームディレクトリが作成されます。
ホームディレクトリが作成されなかった最も可能性の高い理由は、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オプションが必要です!
Lindaをユーザーとして追加する前に/home/linda
が存在しない場合は、--create-home
も追加する必要があります。
Sudo useradd --create-home linda