ユーザー追加のための設定

/usr/sbin/useradd コマンドと /etc/skel ディレクトリは (実行するのも整備するのも単純なもので)、 LFS システムに新たなユーザーを追加する際に用います。 これを利用して各ユーザーに対しての PATH 変数やキーボード設定などの環境設定を行ないます。 この仕組みを利用すれば、追加するユーザーの環境設定を同一の初期状態にすることができます。

/etc/skel ディレクトリは初期化などを行うファイル類を配置します。 /usr/sbin/useradd コマンドによって新しいユーザーを生成した際には、/etc/skel ディレクトリ内のファイルが、そのユーザーのホームディレクトリにコピーされます。

Useradd

useradd プログラムは /etc/default/useradd ファイルからさまざまなデフォルト値を参照します。 このファイルはベースシステムである LFS の構築時に Shadow によってインストールされたものです。 そのファイルを削除または名称変更していた場合は useradd コマンドが内部的に定めているデフォルト値が採用されます。 なおデフォルト値は /usr/sbin/useradd -D を実行すれば確認できます。

デフォルト値の変更が必要な場合は root ユーザーでログインして /etc/default/useradd ファイルを書き換えてしまう、というのが単純なやり方です。 ファイルを書き換えずに実現する方法としては root ユーザーでログインし useradd コマンドを実行する際に、コマンドラインから変更したい値を指定することです。 指定方法については useradd の man ページを参照してください。

/etc/skel

まず初めに /etc/skel ディレクトリを生成します。 このディレクトリはシステム管理者のみが書き込み可能であるようにします。 システム管理者とは通常 root ユーザーのことです。 ディレクトリを生成するのも root ユーザーが行うことにするのが良いでしょう。

The mode of any files from this part of the book that you put in /etc/skel should be writable only by the owner. Also, since there is no telling what kind of sensitive information a user may eventually place in their copy of these files, you should make them unreadable by "group" and "other".

You can also put other files in /etc/skel and different permissions may be needed for them.

Decide which initialization files should be provided in every (or most) new user's home directory. The decisions you make will affect what you do in the next two sections, Bash シェルの初期起動ファイル and vimrc ファイル. Some or all of those files will be useful for root, any already-existing users, and new users.

The files from those sections that you might want to place in /etc/skel include .inputrc, .bash_profile, .bashrc, .bash_logout, .dircolors, and .vimrc. If you are unsure which of these should be placed there, just continue to the following sections, read each section and any references provided, and then make your decision.

You will run a slightly modified set of commands for files which are placed in /etc/skel. Each section will remind you of this. In brief, the book's commands have been written for files not added to /etc/skel and instead just sends the results to the user's home directory. If the file is going to be in /etc/skel, change the book's command(s) to send output there instead and then just copy the file from /etc/skel to the appropriate directories, like /etc, ~ or the home directory of any other user already in the system.

ユーザーの追加

useradd コマンドを利用して新しいユーザーを追加するには -m オプションを指定します。 これはユーザーのホームディレクトリを生成して、/etc/skel ディレクトリにあるファイル類をホームディレクトリにコピーします。 root ユーザーでログインして、例えば以下のように実行します。

useradd -m <newuser>

If you are sharing a /home or /usr/src with another Linux distro (for example, the host distro used for building LFS), you can create a user with the same UID (and, same primary group GID) to keep the file ownership consistent across the systems. First, on the other distro, get the UID of the user and the GID of the user's primary group:

getent passwd <username> | cut -d ':' -f 3,4

The command should output the UID and GID, separated by a colon. Now on the BLFS system, create the primary group and the user:

groupadd -g <GID> <username> &&
useradd -u <UID> -g <username> <username>