如何删除拥有uid 0的用户?

k.s*_*r31 1 unix linux sysadmin bash etcpasswd

我应该清除除root之外ID为0的所有用户.例如,我的passwd文件包含ID为0的用户root和ID为0的用户homer.

我试过类似的东西

grep :x:0: passwd | grep -v root:x: | awk -F : '{ print $1 }' | xargs userdel
Run Code Online (Sandbox Code Playgroud)

但我收到错误userdel:用户本垒打当前登录,即使我以root身份登录,而不是本垒打.我认为,这个错误来自他们的共享和ID.

有没有办法解决?我应该只编辑passwd和shadow文件吗?否则,有没有办法强制id 0是唯一的,这样我们就可以保证不会创建id为0的其他用户?谢谢.

Bry*_*yce 8

"本垒打"和"根"是同一帐户.您可以为单个帐户拥有多个用户名.另见https://unix.stackexchange.com/questions/49993/another-account-with-same-uid-as-root-gets-prompted-to-set-new-password-for-root

你想要vipwvipw -s解决这个问题.直接编辑vim或者sed是个坏主意.

有关此类型的未来问题,请考虑https://serverfault.com/https://unix.stackexchange.com/.