1

root 以外の ID が 0 のすべてのユーザーをクリアすることになっています。たとえば、passwd ファイルには、ID 0 のユーザー root と ID 0 のユーザー homer が含まれています。

私は何かを試しました

grep :x:0: passwd | grep -v root:x: | awk -F : '{ print $1 }' | xargs userdel

しかし、エラー userdel: user homer is currently logged in を受け取りましたが、homer ではなく root としてログインしています。このエラーは、彼らが ID を共有しているためだと思います。

これを回避する方法はありますか?passwd ファイルと shadow ファイルを編集するだけでよいのでしょうか? それ以外の場合、ID 0 を使用して他のユーザーが作成されないようにするために、ID 0 を強制的に一意にする方法はありますか? ありがとう。

4

3 に答える 3

8

「homer」と「root」は同じアカウントです。1 つのアカウントに複数のユーザー名を設定できます。https://unix.stackexchange.com/questions/49993/another-account-with-same-uid-as-root-gets-prompted-to-set-new-password-for-rootも参照してください

これを修正する必要がvipwあります。orでvipw -s直接編集するのは悪い考えです。vimsed

このタイプの今後の質問については、https ://serverfault.com/またはhttps://unix.stackexchange.com/を検討してください。

于 2013-09-11T19:03:35.947 に答える
2

次の sed コマンドを使用できます。

sed '/^[^:]\+:x:0:/{/^root:/!d}' /etc/passwd

または

sed -i '/^[^:]\+:x:0:/{/^root:/!d}' /etc/passwd

これはファイルを変更します。

于 2013-09-11T19:05:21.703 に答える
2

これはトリックです: userdel -rf username

このコマンドは次のことを示します。

userdel: user XXX is currently used by process 1

ただし、ユーザー名は削除されました

于 2015-10-12T12:19:25.187 に答える