AIXを触っていると触ってない人から、
「/etc/security/user のrlogin と login の違いは何ですか?」
「ユーザー属性でloginがfalseに設定されていますけど、ログインできるんですか?」
という質問を受けることがあった。
確かに、僕もAIXよく分からなかったAIX触りたての頃にこの質問されて答えに窮したものです。
今日はそんなことを思い出したので、ユーザー属性のrloginとloginの違いについて整理したいと思います。
ではまず「ユーザー・アカウント制御」のページを参照してみましょう。以下、引用です。
login
このユーザーがログインできるかどうかを指定します。 ログインが成功すると、unsuccessful_login_count 属性が 0 の値 (loginsuccess サブルーチンから) にリセットされます。
rlogin
指定されたユーザーが rlogin コマンドまたは telnet コマンドを使用してログインできるかどうかを指定します。このログイン属性は、リモート・ログインを制御するだけです。個別のリモート・コマンドを実行する機能の制御については、rcmds を参照してください。
ちょっと分かりにくいと思うのですが、どうでしょう。
どちらの属性もtrue,falseで指定するのですが、これだとloginをfalseにしたユーザーはサーバーにログインできないのでは?と思いますよね。
でもssh接続するとあら不思議、ログインできちゃうんですよ。
何故かというと、login属性が制御しているのは「端末(サーバに物理的に直接接続されている)」のログインなんですよね。
login属性についてはこちらを参照すると分かりやすいと思います。
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コマンドでログインできるかどうかを制御しているようです。
ログインコマンドはシステムによって端末からログイン時に実行されるようですね。
ということで、login属性は端末からのログインの可否を制御しているので、SSH接続のようなリモートログインには影響を与えません。
SSHなどのリモートからのログインを制御したければrlogin属性を用いて制御する必要があります。
まとめ
rlogin属性 : SSHなどのリモート接続可否を制御する。
login属性 : 端末からのログインを制御する。
以上、rlogin,login属性の違いでした。