LinuCレベル1 セキュリティ 問34
セキュリティ/ホストのセキュリティ設定デーモンを動かすためだけに作成したシステムアカウント svc について、SSH等での対話的なログインを受け付けないようにしたい。ほかのユーザーのログインには影響を与えずに実現する方法として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「セキュリティ」に対応。実際の試験問題ではありません)
- Ausermod -s /usr/sbin/nologin svc
- Becho 'メンテナンス中' > /etc/nologin
- Cpasswd -d svc
- Dusermod -d /nonexistent svc
正解:A
解説
ログインシェルを /usr/sbin/nologin にしたアカウントは、ログインしようとしても「This account is currently not available.」のようなメッセージを表示して接続が閉じられます。パスワードの有無や認証方式(SSHの公開鍵認証など)にかかわらずシェルが起動しないため、サービス専用のアカウントによく使われます。useradd で作成するときは -s オプションで同じ指定ができ、多くのディストリビューションのシステムアカウントは最初からこの設定になっています。/etc/nologin はroot以外の全ユーザーのログインを止めるもので、特定のアカウントだけを対象にする方法ではありません。
選択肢ごとの解説
- A正しい。ログインシェルを nologin にすると、そのアカウントでの対話的なログインができなくなります。
- B誤り。/etc/nologin が存在すると、svcだけでなくroot以外のすべてのユーザーのログインが拒否されてしまいます。
- C誤り。passwd -d はパスワードを削除して空にするもので、設定によってはパスワード無しでログインできる危険な状態になります。
- D誤り。-d はホームディレクトリを変更するオプションです。ホームディレクトリが存在しなくても、多くの場合は警告が出るだけでログインできてしまいます。