公開/秘密鍵を使用してLinuxボックスにSSHで接続することを禁止するシナリオがあります。 rootでボックスにsudoを実行できます。ボックスでいくつかのスクリプトを実行する必要があります。私のユーザー名とパスワードを使用してログインすることはできません。そうすれば、私のパスワードが世界に公開される可能性があるからです。そのため、sudo権限を持つ新しいユーザー「admin」を作成し、管理者としてボックスにログインしました。構成が完了したら、管理者を削除する必要があります。管理者としてログインしたため、管理者を削除できません。これを達成する方法はありますか?
答え1
私のユーザー名とパスワードを使用してログインすることはできません。そうすれば、私のパスワードが世界に公開される可能性があるからです。
どのようにこのようなことが起こったのか理解できません。 SSH認証は暗号化された接続を介して行われるため、パスワードはリモートホスト(および自分のコンピュータ)にのみ公開されます。もちろん、別のシステムで同じパスワードを使用するか(使用しないでください)、誤って誤ったシステムにパスワードを入力した場合は問題になる可能性があります。
とにかく、パスワードが利用できず、キーベースの認証が利用できない場合はどうすればよいかを知りたいですsudo
。
管理者としてログインしたため、管理者を削除できません。
私はこれについてよくわかりません。一部の「ユーザーフレンドリーな」ユーティリティはこれを行わないように指示することがありますが、スーパーユーザーレベルのシェルを実行している限り、ユーザーvipw
データベースを編集したり(使用または他の方法で)ファイルを削除したりすることはできません。もちろん、この操作中に接続が切断されると問題が発生する可能性があります。
少なくともDebianuserdel
にもこの--force
オプションがありますまだログインしている場合でもユーザーを削除します。
答え2
1つの可能性は、ユーザーを無効にすることです(パスワードを空にしてsudo権限を削除する)。そのユーザーとしてsudoを介してこれを行うことができます。ログアウト後はもうログインできません。
もう1つの方法は、rootとして実行されているクローンジョブを使用してユーザーが存在することを確認し、その/home/admin
場合にユーザーを削除することです。
答え3
後で予約できますat
。のようにroot
:
at 18:00 <<HERE
/usr/sbin/deluser --remove-home admin
HERE
キューチェックを使用し、ジョブatq
削除を使用しますatrm <ID>
。
at
インストールされていて、デーモンが実行されているとします(たとえば、atd.service
systemdを介して)。