助け合いフォーラム
この問題はプレミアムコンテンツです。
usermod -L は対話的ログインは禁止されないのか
対話的ログインを禁止する方法、というこの問題の解説に対し
usermod -L hoge2
は、アカウントがロックされてしまうため不正解とありますが
アカウントがロックされたら対話的ログインもできなくなるから
正解だと思ったのですが、違うのでしょうか。
それとも、アカウントがロックされても普通に対話的ログインできてしまうということでしょうか?
(だったら何のためのアカウントロックなのでしょうか)
他のLinuxやLinucの解説サイトではusermod -L が対話的ログインを禁止する方法として
挙げられていませんか?
ログインシェルに /bin/false , /sbin/nologin を設定した場合、
対話的ログインは出来なくなりますが、ユーザーアカウント自体は生きています。
システムに対話的ログインをしてシェルを使う必要は無いが何らかのサービスは利用する、という状況で使うケースが想定されます。
例えば、FTPサーバーやメールサーバーにクライアントソフトを用いて接続する等。
つまりシェルを使わせたくない場合に設定する、という解釈になるのかなと思いました。
usermod -L
この場合アカウント自体がロックされてしまうため、上記ケースを含めて全てが制限されてしまいます。
/bin/false , /sbin/nologin
をログインシェルに設定したアカウントを用意して "su -" や ssh によるログインを試してみました。
アカウントのパスワード有無で若干挙動が違いましたが、概ね想定通りかなという印象です。
クライアントソフトを用いての動作は未確認なので、時間があれば調べてみてもいいかもしれません。
コメント
ご質問の
usermod -L は対話的ログインは禁止されないのか
ですが、ログインは禁止されますが、対話的ログイン
というシェルの動作は禁止されていませんので
誤答になってしまうのかなと思いました。
コメント
もう終わってるっぽいですが。
SSH接続できる環境でやってみましたが、 usermod -L
するとまずそもそもログインできませんでした。
$ ssh testuser@192.168.64.2
testuser@192.168.64.2's password:
Permission denied, please try again.
testuser@192.168.64.2's password:
Permission denied, please try again.
testuser@192.168.64.2's password:
testuser@192.168.64.2: Permission denied (publickey,password).
で、正解となっている usermod -s /bin/false
だと、アカウントは生きているもののシェルが利用できないので対話的ログインできず、すぐに追い出されます。
$ ssh testuser@192.168.64.2
testuser@192.168.64.2's password:
Welcome to Ubuntu 23.10 (GNU/Linux 6.5.0-26-generic aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Wed Apr 10 16:08:19 2024 from 192.168.64.1
Connection to 192.168.64.2 closed.
この設問で求められているのは「対話的ログインの禁止」であって「アカウントのロック」ではないのはすでに他の方も言及されている通りです。その上であえていうなら
アカウントがロックされたら対話的ログインもできなくなるから
正解だと思ったのですが、違うのでしょうか。
と疑問に思われている通り「求められていることを達成せず別の操作の副次的な影響で達成(したように)するのをよしとするのか」というところでしょうけど、たとえば「 systemctl stop sshd
したらリモートから対話的ログインできなくなるからこれもOK」とか「 passwd hoge2
してパスワード勝手に変えたらログインできなくなるのだからこれもOK」とはならないですよね。
この問題では「最も適切なコマンド」を「2つ」選ぶようになっているので、まずは「求められているもの」を主に考えて、あとは試験テクニック的にも「回答数に合う【より適切な】選択肢を選ぶ」というのが優先かなと思います。その上で、求められているものを達成できるものが回答数に満たない場合は次善の選択肢を検討する、という順番がより良いかと思います。
コメント
この投稿に対して返信しませんか?
m miki_y
2024/03/05 23:47
2件もご返信いただきありがとうございます。 そうなのですね。あるユーザに対し対話的にログインさせることを禁止させる方法を問うているのではなく対話的ログインという機能自体を禁止させる方法と解釈すべし、ということですかね。 ただ、正解の2つの選択肢の方も、どちらもユーザ名を引数に取っていて、対象のユーザのログインだけを禁止する方法が正解とされているように見えました。 もともと、 複数サイトでみても、「usermod -L ユーザ」の挙動の説明として、だいたい「アカウントのロック」「パスワードのロック」「ログインの禁止」のいずれかの説明となっていて、対話的/非対話的ログインのどちらが(どちらも?)可能なのかがはっきり書かれたサイトが見つけられませんでした。 また、もしusermod -Lでも対話的ログインはできるのだとすると、 https://linuc.org/study/samples/318/ このLPI-Japanのサイトの問題で「既存ユーザのパスワードをロックして一時的に利用不可にする」コマンドの正解が usermod -L となってまして、 一時的に利用不可する手段のわりに、対話的ログインは普通にできてしまうのも違和感がありまして、、 実際に実験してみるのが早いのかもしれませんね。。。