次の状況を考えてみましょう。
- ユーザーは
ssh
システムに入り、必要なタスクを実行します。 shutdown
次に、以下を使用する準備をします。sudo shutdown -h +1
- 最後に、SSHセッションを閉じます。
これ/run/nologin
で作成されたため、誰もログインできませんが、問題が発生してクラッシュするssh
前にシステムに戻りたいと思います。
ログインが許可されなくなった場合は、スケジュールされたシャットダウンをリモートでキャンセルできますか?
ベストアンサー1
新しい接続を確立するために「root」アカウントを使用する代わりに、ssh
実際にPAMを使用して特定のユーザーまたはグループがログインできるようにすることができます。
sshd
次のPAM構成は、/etc/pam.d/sshd
あなたが探しているものを担当します。
このファイルを編集して使用すると、ファイルがコンピュータにある場合でも、特定のpam_succeed_if.so
ユーザーまたはグループがログインできるようになります。/run/nologin
pam_succeed_if.so は、認証対象ユーザーに属するアカウント属性または他の PAM エントリの値に基づいて認証の成功または失敗を決定するように設計されています。 1つの用途は、このテストに基づいて他のモジュールをロードするかどうかを選択することです。
pam_nologin.so
したがって、これを使用して、ユーザー名またはユーザーグループに基づいてどのモジュールをロードする必要があるかを検出します。
目的のテキストエディタを使用してファイルを開きます。
$ sudo vi /etc/pam.d/sshd
次の行を探してください。
# Disallow non-root logins when /etc/nologin exists.
account required pam_nologin.so
その間に次の行を追加してください。
account [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo
今行は次のようになります。
# Disallow non-root logins when /etc/nologin exists.
account [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo
account required pam_nologin.so
sudo
これで、グループ内のユーザーが/run/nologin
存在してもログインできます。
特定のユーザーを許可します。
account [default=2 success=ignore] pam_succeed_if.so quiet user != username
より柔軟な支払い条件が必要な場合:
man pam_succeed_if