LOGIN(1)

名前
login - システム上にセッションを開く

書式
login [ username [ environmental-variables ] ]

説明
login はシステムに新たにセッションを開くために用いられる。 通常は、ユーザの端末に表示される login: というプロンプトに応える事によって自動的に起動される。 login はシェルにのみ限定されており、サブプロセスとして起動することは出来ない。 典型的には、シェルは login を exec loginと見做すので、ユーザは現在のシェルから抜けることになる。 ログインシェル以外からloginを起動しようとすると、エラーメッセージが 表示される。

login:プロンプトから起動した際は、ユーザ名に続いて環境変数を入力 する事もできる。 それらを入力する場合はNAME=VALUEという書式で行う。 この方法で全ての変数を設定できるわけではない。 設定できないものの代表例として、PATH、HOME及びSHELLが ある。 加えて、ログインシェルが/bin/shの場合はIFSの設定も 行う事が出来ない。

次いで、必要ならば、パスワードの入力を促される。 パスワードを明かしてしまわないために、エコーは行われない。 数回以上パスワード入力に失敗するとloginは終了し通信の接続は 切断されてしまう。

アカウントに対してパスワードの有効期限が設定されている場合は、 先に進む前に新しいパスワードの設定を促されることもある。 セッションを続けるためには古いパスワード及び新しいパスワードを入力 しなくてはならない。 詳しい情報はpasswd(1)を参照せよ。

ログインに成功すると、システムに関する情報やメイルの有無が表示される。 ログインディレクトリに長さ0のファイル.hushloginを作っておくことで、 システムのメッセージファイル、即ち/etc/motdが表示されなくすること も出来る。 メイルに関するメッセージとしては、メイルボックスの状態によって "You have new mail."、 "You have mail."、もしくは "No Mail."のいずれが表示される。

ユーザ及びグループのIDは/etc/passwdファイル中に記載されている値 によって設定される。 $HOME、$SHELL、$PATH、$LOGNAME及び$MAILの値 はパスワードエントリー中の対応する欄に記された値によって設定される。 ulimit、umask及びnice値をGECOS欄のエントリーによって設定することもできる。

インストレーションによっては、 ttyデバイスの端末の種類にあわせて、 環境変数$TERMが /etc/ttytypeに指定された通りに初期化される。

コマンドインタプリタの初期化スクリプトが実行されることもある。 この機能についての詳しい情報は適当なマニュアルセクションを参照のこと。

警告

この版のloginには多くのコンパイル時オプションがあるが、 サイトによっては、そのうちのいくつかしか使われていないこともある。

システムの設定の違いによって上記ファイルの在処はかわる。

shadowログインプログラムでのユーザ制限の設定方法

まず、リソースに対して課したい制限を記した、rootのみが読むことの出来る ファイル(ディフォルトでは/etc/limits、 若しくはconfig.h中で定義されているLIMITS_FILEで指定したもの)を作る。 ディフォルトでは、'root'にはquotaの制限は課されない。 実際のところ、この手法によってrootと同権のアカウント(UIDが0のアカウント) に制限を課す手立ては存在しない。

各行には以下の書式でユーザへの制限を書いておく。
user LIMITS_STRING

LIMITS_STRINGはリソースに対する制限のリストを連結した 文字列である。 各制限は識別子一文字とそれに続く制限数値によって指定する。 識別子として有効なものは:
C: coreファイルサイズの最大値 (KB)
D: 最大のデータサイズ (KB)
F: 最大のファイルサイズ (KB)
M: メモリ中で占有することの出来るアドレス空間の最大値 (KB)
N: 開くことの出来るファイル数の最大値
R: 常駐させられる最大サイズ (KB)
S: 最大のスタックサイズ (KB)
T: 最大CPUタイム (分)
U: 最大プロセス数
L: ログイン出来る数の最大値

例えば、L2D2048N5は正しいLIMITS_STRINGである。

ディフォルトのエントリーは'*'というユーザ名で表される。 LIMITS_FILE中に複数の'ディフォルト'エントリーが設定されている場合は、 最後のものがディフォルトエントリーとして用いられる。

ファイル
/etc/utmp - 現在のログインセッションのリスト
/etc/wtmp - 直前のログインセッションのリスト
/etc/passwd - ユーザアカウントの情報
/etc/shadow - shadowされたパスワード及び、期限の情報
/etc/motd - システムメッセージファイル
/etc/ttytype - 端末の種類のリスト
/etc/limits - ユーザに課すシステムリソースへの制限
$HOME/.profile - ディフォルトシェルの初期化スクリプト
$HOME/.hushlogin - システムメッセージの表示をとめる

関連コマンド

getty(1M), mail(1), passwd(1), sh(1), su(1), d_passwd(4), passwd(4)

翻訳者
古高和禎 <furutaka@Flux.tokai.jaeri.go.jp>