web-dev-qa-db-ja.com

〜/ .bashrcファイルはどの時点で作成されますか?

たとえば、コマンドadduser testを実行すると、ユーザーtestのホームディレクトリの作成時に.bashrcが自動的に作成されますか?ユーザーの作成時に作成されない場合、どのような条件下で作成されますか?

また、.bashrcファイルをユーザーのホームディレクトリに追加すると、OSによって上書きされますか?

前もって感謝します。

20
Michael

ほとんどの場合、初期ユーザーファイル(.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と同じになります。


参照:

29
pa4080