(ログイン名とパスワードを入力して)ログインすると、あなたは
getty
およびコンピュータに認識されます。getty
は
(そのまんまな名前ですが)login
と呼ばれるプログラムを実行します。
このプログラムはあなたがマシンの使用を許可されているかどうかをチェックしま
す。もし許可されていなければ、ログインしようとしても拒否されます。許可され
ていれば、login は管理のための処理をいくつか行った後、コマンドインタプリタ
すなわちシェルを起動します。(ええ、getty
とlogin
はひとつのプログラムにもできました。別々になっているのは、歴史的な経緯の
ため、今さら一つにするのは得策でないからです。)
システムがユーザにシェルを使わせる前にやっていることはもう少しあります。 これは後でファイルのパーミッションの説明をする時には理解している必要があり ます。ユーザはユーザ名とパスワードで識別されます。このログイン名は /etc/passwd というファイルから引きます。このファイルには、ユーザアカウント について書かれた行が並んでいます。
これらのフィールドのひとつは、アカウントのパスワードを暗号化したものです。
アカウントのパスワードとして入力した文字列は、パスワードフィールドと全く同
じ方法で暗号化され、login
プログラムはこれらが一致するかどうかを
チェックします。この方法の安全性は以下の事実に基づいています。つまり、平文
のパスワードを暗号化するのは簡単ですが、その逆の操作は非常に困難です。した
がって、誰かに暗号化したパスワードを見られたとしてもアカウントを使われる
ことはありません。(これは、パスワードを忘れてしまうとそれを調べる方法はなく、
何か別のパスワードに変更するしかないということでもあります。)
いったんうまくログインすると、あなたが使っている個人アカウントに対応する 権限が全て手に入ります。また、あなたはグループの一員と しても識別されます。グループは、システム管理者が設定したユーザの集合です。 グループは、個々のメンバーの権限とは独立の権限を持っています。ユーザは複数 のグループのメンバーになれます。(Unix における権限がどう働くかについては、 後述の パーミッションに関する節をご覧ください。)
(普通はユーザとグループは名前で参照しますが、これらは内部的には数値の ID で
保持されていることに注意してください。パスワードファイルはアカウント名を
ユーザ ID に対応付けます。/etc/group
ファイルはグループ名
を数値のグループ ID に対応付けます。アカウントやグループを扱うコマンドは、
この変換を自動的に行います。)
あなたのアカウントのエントリにはホームディレクトリ
が含まれています。これは、個人のファイルが置かれる Unix ファイルシステム上
の位置です。最後に、アカウントのエントリにはシェルの
設定も含まれます。これはあなたが入力するコマンドを受け付けるために
login
が実行するコマンドインタプリタです。