可能であれば、ホームページを混乱させずに一部のユーザーアカウントをロックする必要があります。
一般的な方法は、usermod -L user
公開鍵認証(通常はこのサーバーで使用されます)を使用してSSHログインを開いたままにすることです。
私はできることmv /home/user/.ssh /home/user/_ssh
を知っています。しかし、これは正しい方法ですか?
私は何を見逃していますか?
ベストアンサー1
このマニュアルはman usermod
推奨ソリューションを提供します。
-L
、--lock
ユーザーのパスワードをロックします。これにより、!
暗号化されたパスワードの前に1つが配置され、パスワードが効果的に無効になります。このオプション-p
はまたはで使用できません-U
。注:アカウントをロックするには(パスワードを使用してアクセスするのではなく)
EXPIRE_DATE
に設定する必要があります1
。
それから
-e
、--expiredate EXPIRE_DATE
ユーザーアカウントが無効になる日付。日付は形式で指定されますYYYY-MM-DD
。空
EXPIRE_DATE
のパラメータはアカウントの有効期限を無効にします。
それでは実際のケースに変えてみてください
usermod -L -e 1 someuser # Lock
usermod -L -e '' someuser # Unlock
デフォルトの有効期限を設定した場合は、/etc/default/useradd
ロック解除プロセスにその値(存在する場合)を含めることができます。
usermod -U -e "$( . /etc/default/useradd; echo "$EXPIRE")" someuser
cron
ロックされたアカウントを持つユーザーだけでなく、期限切れのアカウントを持つユーザーに対してもスケジュールされた操作は無効になります。エラーメッセージには、journalctl -u cron
期限切れのユーザーのアカウント名が表示されます(この場合test2
)。
Apr 30 11:47:01 pi CRON[26872]: pam_unix(cron:account): account test2 has expired (account expired)
Apr 30 11:47:01 pi cron[472]: Authentication failure
Apr 30 11:47:01 pi CRON[26872]: Authentication failure
スケジュールされたジョブはat
まだ試行されていません。 (期限が過ぎると実行されるかはわかりませんが、経験上そうではないようです。)
ロックされ、期限切れのアカウントですでに実行されている他のプロセスは、影響を受けずに実行され続けます。