Linuxの基本4
ここでは、Linuxの基本となるユーザー体系・ユーザ管理・グループ管理についての解説をします。
Linuxについての基本情報を知りましょう!!
Linuxの基本3はこちら
Linuxのユーザ体系
Linuxは複数のユーザが同時に利用することを前提としています。このような仕組みをマルチユーザと呼びます。
デフォルトで用意されているrootユーザは管理者ユーザです。スーパーユーザとも呼ばれ、最上位の権限を持ち、システム全体に影響を及ぼすような操作も可能です。
利用者は基本的に一般ユーザを作成および使用してログインします。システムユーザは特定プログラム実行用のユーザで、ログインして使用することはありません。複数ユーザをまとめて管理するための枠組みとして、グループが使用されています。
/etc/passwdファイル
LinuxではOS上に存在するユーザ情報を「/etc/passwd」というファイルに格納します。passwdファイルは標準で用意されており、ユーザの情報が1行ずつ記載されています。
各行の「:」で区切られたフィールドにユーザ名、パスワード、ユーザID(UID)、グループID(GID)、コメント、ホームディレクトリ、ログインシェルが記載されます。なお、ここではパスワード自体は表示されず、「x」と表記されていますが、これは後述の「/etc/shadow」という別ファイルでパスワードを管理していることを示します。
/etc/groupファイル
LinuxではOS上に存在するグループ情報を「/etc/group」ファイルに格納します。groupファイルは標準で用意されており、グループの情報が1行ずつ記載されています。
各行の「:」で区切られたフィールドにグループ名、グループパスワード、グループID(GID)、サブグループとして所属しているユーザのリストが記載されます。サブグループに関する説明は「108グループ管理コマンド」で行います。なお、ここでもパスワード自体は表示されず、「x」と表記されます。グループのパスワードは/etc/gshadowファイルに記録されますが、そもそもグループのパスワードはセキュリティの管理が複雑になることもあり、グループのパスワード自体があまり使用されていません。
/etc/shadowファイル
Linuxではシャドウパスワードという仕組みにより、パスワードを「/etc/shadow」というファイルに格納して管理しています。以前はユーザのパスワードは「/etc/passwd」に記載されていましたが、一般ユーザも読み取りできるファイルであるため、セキュリティの観点で望ましくなくシャドウパスワードが採用されるようになりました。
shadowファイルは「:」でフィールドが区切られています。パスワードは暗号化されたものが表示されます。その他設定内容に応じてパスワードの有効期限などが表示されます。
ユーザ管理コマンド
Linuxにはユーザを管理するためのコマンドが用意されています。
ユーザを追加するにはuseraddコマンドを使います。オプションを追加することで作成時にホームディレクトリや所属グループを指定することもできます。useraddで作成されたユーザにはログインパスワードが設定されていません。passwdコマンドを使うことでパスワードを設定できます。 既存のユーザ情報を変更するにはusermodコマンド、ユーザを削除するにはuserdelコマンドを使用します。
useradd実行時の動作(/etc/skel)
useraddコマンドを使ってユーザを作成すると、ホームディレクトリにいくつかのファイル(「.」から始まる隠しファイルを含む)があらかじめ用意されています。
ユーザ作成時は「/etc/skel」ディレクトリの中身を雛型として、新たに作成されたユーザのホームディレクトリに同じ内容が自動でコピーされます。
どのユーザにとっても必要なファイルなどがあれば、skelディレクトリに格納しておくことで、手動でファイルを作成したり格納したりする手間を省くことができます。
グループ管理コマンド
グループはプライマリグループとサブグループに分けることができます。
前者はユーザが必ず所属する基本となるグループで、「/etc/passwd」ファイルに記録されます。後者は任意で追加できるグループで、「/etc/group」ファイルに記録され、アクセス権のチェックに使用されます。
グループはユーザと同様にコマンドを使って管理します。新規グループの作成はgroupaddコマンド、グループ情報の変更はgroupmodコマンドを使います。グループの削除はgroupdelコマンドを使用しますが、削除したいグループが、ユーザのプライマリグループに設定されている場合は削除が実行できないので注意が必要です。
idコマンド
idコマンドを使うと指定したユーザのユーザID(uid)、グループID(gid)、所属グループ(groups)を表示できます。idユーザ名でユーザを指定して実行します。グループIDにはプライマリグループが、所属グループにはサブグループが記載されています。
まとめ
- Linuxの管理者ユーザの名は「root」
- ユーザ情報が記載されるファイルは「/etc/passwd」
- グループ情報が記載されるファイルは「/etc/group」
- ユーザのパスワードが記載されるファイルは「/etc/shadow」
- ユーザを追加するコマンドは「useradd」
- グループを削除するコマンドは「groupdel」