前回の記事にて、Linuxで新しいユーザーを作成する方法を解説しました。
今回は、作成したユーザー情報がどのファイルに格納されているのか、またそのファイルの中身について解説します。
Linuxの主なディレクトリ構成についても触れていますので、Linuxの入門記事として、是非参考にしてください。
1.Linuxのファイルとディレクトリ
1.1 ファイルの種類とファイル名
Linuxで扱うファイルは、大きく分けて以下の4つに分類することができます。
・通常ファイル
・ディレクトリ
・リンクファイル
・特殊ファイル
① 通常ファイル
通常使用する、データやプログラムなどが格納されたファイルです。
人間が読むことが可能なテキストファイルのほか、プログラムなどのバイナリファイルなどがあります。
② ディレクトリ
様々なファイルをまとめて管理するためのファイルで、Windowsでいう「フォルダ」に該当するファイルです。
③ リンクファイル
ファイル名と、ファイルそのものを関連付けるためのファイルです。
Windowsでいうショートカットに該当する「シンボリックリンク」と、1つのファイルに対して複数のファイル名でアクセスすることが可能な「ハードリンク」の2種類があります。
④ 特殊ファイル
デバイスファイルとも呼ばれ、Linuxではハードウェア、プリンタなどのあらゆる周辺装置をデバイスファイルとして扱います。
Linuxでは、ファイル名は大文字と小文字は区別されます。
また、拡張子という概念がないので、どのようなファイルかが理解しやすいように、ファイル名に「.txt」などを含めると良いでしょう。
1.2 Linuxのファイルとディレクトリ
Linuxでは、Windowsでいうフォルダに該当するディレクトリという概念があります。
多くのLinuxディストリビューションにおいて、そのディレクトリ階層はFHS(Filesystem Hierarchy Standart)という仕様に基づいて決められています。
FHSはバージョンがあり、2017年9月現在の最新バージョンは2.3となっています。
ディレクトリは、ルートディレクトリ(/)を頂点とした、ツリー構造となっています。
ルートディレクトリ配下の主なディレクトリは、以下のとおりです。
ディレクトリ名 | 概要 |
---|---|
bin | 一般ユーザーも使用できるコマンド |
boot | 起動に必要なファイルやカーネル |
dev | デバイスファイル |
etc | システムの設定ファイル |
home | ユーザー毎のホームディレクトリ |
lib | 共有のライブラリファイル |
lib64 | 64ビット環境の共有ライブラリファイル |
media | CDやDVDのデータ |
mnt | マウントポイントとなるディレクトリ |
opt | ソフトウェアのインストール先 |
proc | カーネルが保持する情報(仮想ファイル) |
root | rootのホームディレクトリ |
run | boot後のシステム情報 |
sbin | 主にrootのみ使用できるシステム管理のコマンド |
srv | サービス用データ |
sys | 仮想ファイル |
tmp | 一時ファイル |
usr | 共有データ |
var | 可変データ |
2.ユーザー情報ファイル
前述したFHS(ファイルシステム階層標準)において、「etcディレクトリ」配下にユーザー情報が格納されており、次の2つのファイルに書き込まれています。
2.1 /etc/passwd ユーザー情報一覧ファイル
etc/passwdファイルでは、ユーザー情報を一覧で確認することができます。
(例)catコマンドを実行して、/etc/passwdファイルを参照する
1ユーザー1行で表示されます。
セミコロン(:)で区切られた7つのフィールドからなっており、それぞれの意味は次のとおりです。
①ユーザー名
②パスワード(/etc/shadowを使っている場合はx、使用しない場合は暗号化パスワード)
③ユーザー番号(uid)
④グループ番号(gid)
⑤コメント
⑥ホームディレクトリ
⑦ログインシェル
2.2 /etc/shadow ユーザーのパスワード情報一覧ファイル
/etc/shadowファイルでは、ユーザーのパスワード情報を一覧で確認することが可能です。
このファイルは、rootユーザーのみ閲覧編集ができます。
(例)catコマンドを実行して、/etc/shadowファイルを参照する
shadowファイルもセミコロン(:)で区切られた9つのフィールドからなっており、それぞれの意味は次のとおりです。
①ユーザー名
②暗号化パスワード(パスワードが未設定の場合は「!!」で表示される)
③1970年1月1日から、パスワードを最後に変更した日までの日数
④パスワードの変更が可能になる日までの日数
※「0」の場合は常に変更が可能
⑤パスワードの変更期限までの日数
※99999は無期限を意味する
⑥パスワードの有効期限が切れる、何日前からユーザーに警告を出すかの日数
⑦パスワードの有効期限が切れてから、何日後にアカウントを利用できなくするかの日数
⑧1970年1月1日から、アカウントが利用できなくなるまでの日数
⑨予約されたフィールド