LOGIN(1)

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

書式
login [-p] [username] [ENV=VAR ...]
login [-p] [-h host] [-f username]
login [-p] -r host

説明
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に指定された通りに初期化される。

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

サブシステムログインはログインシェルの最初の文字として "*" を置くことで指定する。 与えられたホームディレクトリはユーザが実際にログインする 新しいファイルシステムのルートとして扱われる。

オプション

-p  環境を保存する。

-f  ユーザは事前認証されているものとして、認証動作を行なわない。

-h  このログインのためのリモートホストの名前。

-r  rlogin のための自動ログインプロトコルを実行する。

-r, -h, -f オプションは login が root として起動された 場合にのみ用いられる。

警告

この版の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/nologin - root 以外のユーザのログインを抑制する
/etc/ttytype - 端末の種類のリスト
/etc/limits - ユーザに課すシステムリソースへの制限
$HOME/.profile - デフォルトシェルの初期化スクリプト
$HOME/.hushlogin - システムメッセージの表示をとめる

関連項目

mail(1), passwd(1), sh(1), su(1), login.defs(5), nologin(5), passwd(5), getty(8)

著者
Julianne Frances Haugh (jockgrrl@ix.netcom.com)