たとえば、Linuxで私のユーザー名を変更したいのですが、sudo usermod -l new old
エラーが発生します。
usermod: user old is currently used by process 4139
SSH経由でログインしたので、これは明らかです。
old 4139 0.0 0.2 17032 5140 ? S 18:31 0:00 sshd: old@pts/0
それでも、su root
別のユーザーとして新しいシェルを起動します。セキュリティ上の理由から、SSHを介して他のユーザーとしてログインすることはできません。この問題をどのように克服できますか?
1つのオプションは、一時的にセキュリティを下げる(sshd設定を変更する)、一時ユーザーを作成し、SSHキーを設定し、それをsudoersに追加し、他のユーザーとしてログインしてすべてをクリーンアップすることです。これは非常に退屈な作業のようです。より簡単な方法がありますか?
答え1
試してみて、機能していることを確認してくださいexec su root
。これにより、シェルが置き換えられ、実行中のsu
プロセスがない可能性がありますold
。
それでも機能しない場合は、rootとしてログインしてください。あるいは、ユーザーデータベースを手動で編集し、それによって発生する可能性のある混乱を考慮してください(正直に、特権セッションを開いたままにしている間に実際に多くの影響を与えるのは疑わしいです)usermod
。で行う必要があります。
rootとして直接ログインすることとrootとしてsudoする新しいユーザーを作成することには、「セキュリティの削減」の違いはありません。