ユーザの作成(続き)
ホームディレクトリの中身
ところで、ユーザの作成と同時に作成されたホームディレクトリの中身はどうなっているでしょうか? 確認してみましょう。
# cd /home/Y # ls -a(←'-a'オプションを忘れないように!) . .. .bash_logout .bash_profile .bashrc
いくつかファイルが置かれていますね。これらのディレクトリやファイルは、「/etc/skel」ディレクトリの下に配置されているもののコピーです。ユーザを追加したときに、そのユーザのホームディレクトリにコピーされます。/etc/skelディレクトリの中身を確認してみましょう。
# cd /etc/skel # ls -a
ユーザuserYのホームディレクトリと同じファイルが表示されたはずです。この仕組みを利用して、追加したユーザのホームディレクトリにデフォルトで置きたいファイルを用意することができます。試しに、/etc/skelディレクトリ配下に「test.txt」ファイルを作成した後、ユーザを追加してみましょう。
# touch /etc/skel/test.txt # useradd userZ # cd /home/userZ # ls -a . .. .bash_logout .bash_profile .bashrc test.txt
ユーザuserZのホームディレクトリに、test.txtが確かにありますね。
ユーザの変更・削除
次にユーザの変更を行いましょう。ユーザの変更にはusermod
コマンドを使います。
# usermod -u 511 -g 510 -c "test userY" -d /home/userY -s /bin/bash userY
UIDを「510」→「511」、コメントを「test user」→「test userY」、ホームディレクトリを「/home/Y」→「/home/userY」、デフォルトシェルを「/bin/sh」→「/bin/bash」に変更しました。/etc/passwdファイルを参照して、指定どおりに変更されたことを確認してみてください。
それでは最後に、ユーザの削除を行いましょう。ユーザの削除はuserdel
コマンドです。
# userdel userY
削除できたかどうか、やはり/etc/passwdファイルを参照して確認してみてください。これでユーザの作成・変更・削除ができるようになりました。
ファイル内のエントリ(1行データ)を確認するのに便利なコマンド
ユーザとグループの作成・変更・削除を行った結果を確認するときには、/etc/passwdファイルや/etc/groupファイルの中身を見てきました。これらのファイルは1行に1つエントリが記述されていますが、こういったファイルを確認するのに便利なコマンドにgetent
があります。「エントリ(entry)」を「取得する(get)」コマンドですね。
例えば、ユーザであれば、
# getent passwd
で取得でき、
# getent passwd userX
のようにユーザ名を指定すれば、指定ユーザの情報だけをピックアップできます。
一方、グループの場合には、
# getent group
でグループ一覧、
# getent group groupX
で指定グループの表示が行えます。
cat
コマンドとgrep
コマンドを組み合わせても同じですが、便利なコマンドとして覚えておきましょう。