たとえば、コマンドadduser test
を実行すると、ユーザーtest
のホームディレクトリの作成時に.bashrcが自動的に作成されますか?ユーザーの作成時に作成されない場合、どのような条件下で作成されますか?
また、.bashrcファイルをユーザーのホームディレクトリに追加すると、OSによって上書きされますか?
前もって感謝します。
ほとんどの場合、初期ユーザーファイル(.bashrc
を含む)は、ユーザーの作成時に作成されます。これらは、/etc/skel
という名前の「骨格」ディレクトリに保存されているファイルのコピーです。主に2つのコマンドがあります。
useradd
は、直接(オプションなしで)システムユーザー(およびそのグループ)が作成されます:
$ Sudo useradd new-user
$ ls -la /home/new-user/
ls: cannot access '/home/new-user/': No such file or directory
useradd
は、/etc/skel
-m
オプションが指定されている場合、ホームディレクトリを作成し、--create-home
のコピーをそのディレクトリに追加します。 このコメント @jwodderに感謝します。
オプション-s
--Shell
は、新しいユーザーのログインシェルの名前を変更します。新しいユーザーのログインシェルが何であっても、「骨格」ディレクトリ/etc/skel
のコンテンツ全体が新しいユーザーのホームディレクトリに格納されます。
-k
--create-home
オプションを使用して、別の「骨格」ディレクトリを定義できます。
このコマンドの構成ファイルは/etc/default/useradd
です。
adduser
は、useradd
のユーザーフレンドリーでインタラクティブなフロントエンドです。このコマンドは、デフォルトで/etc/skel
からユーザーの$HOME
ディレクトリにファイルをコピーします。
$ Sudo adduser new-user
Adding user `new-user' ...
Adding new group `new-user' (1002) ...
Adding new user `new-user' (1002) with group `new-user' ...
Creating home directory `/home/new-user' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for new-user
Enter the new value, or press ENTER for the default
Full Name []: New User
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
$ ls -a /home/new-user/
. .. .bash_logout .bashrc .config examples.desktop .profile .Xdefaults
このコマンドの構成ファイルは/etc/adduser.conf
です。
新しいユーザーのログインシェルのデフォルト値は、変数DSHELL=
によって決定されます。オプション--Shell
でも指定できます。新しいユーザーのログインシェルが何であっても、「骨格」ディレクトリ/etc/skel
のコンテンツ全体が新しいユーザーのホームディレクトリに格納されます。
このファイルのSKEL=
変数は、「骨格」ユーザーファイルを含むデフォルトディレクトリを指定します。
オプション--no-create-home
は、コマンドadduser
がユーザーのホームディレクトリを作成しないように強制します。それぞれ、「骨格」ディレクトリのコンテンツはコピーされません。
1つの非オプション引数と--system
オプションで呼び出された場合、adduser
はシステムユーザーを追加します...ホームディレクトリは通常のユーザーと同じルールで作成されます。新しいシステムユーザーには、シェル/bin/false
があり(--Shell
オプションでオーバーライドされない限り)、ログインが無効になります。 骨格構成ファイルはコピーされません。...マニュアルページから。
さらに、GUIツールで User Accounts
としてユーザーを作成すると、結果はコマンドadduser
と同じになります。
参照: