Geecul

Geekに踊ってカルチャーと寝る

【AIX】/etc/security/user ファイルの rlogin と login の違い

AIXを触っていると触ってない人から、

「/etc/security/user のrlogin と login の違いは何ですか?」

「ユーザー属性でloginがfalseに設定されていますけど、ログインできるんですか?」

という質問を受けることがあった。

確かに、僕もAIXよく分からなかったAIX触りたての頃にこの質問されて答えに窮したものです。

今日はそんなことを思い出したので、ユーザー属性のrloginとloginの違いについて整理したいと思います。

 

ではまず「ユーザー・アカウント制御」のページを参照してみましょう。以下、引用です。

www.ibm.com

login

このユーザーがログインできるかどうかを指定します。 ログインが成功すると、unsuccessful_login_count 属性が 0 の値 (loginsuccess サブルーチンから) にリセットされます。

rlogin

指定されたユーザーが rlogin コマンドまたは telnet コマンドを使用してログインできるかどうかを指定します。このログイン属性は、リモート・ログインを制御するだけです。個別のリモート・コマンドを実行する機能の制御については、rcmds を参照してください。

 

ちょっと分かりにくいと思うのですが、どうでしょう。

どちらの属性もtrue,falseで指定するのですが、これだとloginをfalseにしたユーザーはサーバーにログインできないのでは?と思いますよね。

でもssh接続するとあら不思議、ログインできちゃうんですよ。

 

何故かというと、login属性が制御しているのは「端末(サーバに物理的に直接接続されている)」のログインなんですよね。

login属性についてはこちらを参照すると分かりやすいと思います。

www.ibm.com

 Indicates whether the user can log in to the system with the login command. Possible values are: Indicates whether the user can log in to the system with the login command. Possible values are:trueThe user can log in to the system. This is the default.falseThe user cannot log in to the system.

 

おやおや、login属性はloginコマンドでログインできるかどうかを制御しているようです。

ログインコマンドはシステムによって端末からログイン時に実行されるようですね。

www.ibm.com

ということで、login属性は端末からのログインの可否を制御しているので、SSH接続のようなリモートログインには影響を与えません。

SSHなどのリモートからのログインを制御したければrlogin属性を用いて制御する必要があります。

まとめ

rlogin属性 : SSHなどのリモート接続可否を制御する。

login属性 : 端末からのログインを制御する。

 

以上、rlogin,login属性の違いでした。