具有 sudo 权限的用户可以删除自己吗?

具有 sudo 权限的用户可以删除自己吗?

我有一个场景,禁止使用公钥/私钥 sshing 进入 Linux 盒子。我可以 sudo 作为 root 进入盒子。我需要在盒子上运行一些脚本。我无法使用我的用户名和密码登录,因为这会将我的密码暴露给全世界。因此,我创建了一个具有 sudo 权限的新用户“admin”,并以管理员身份登录到该框。配置完成后,我需要删除管理员。由于我以管理员身份登录,因此无法删除管理员。有什么办法可以实现这一点吗?

答案1

我无法使用我的用户名和密码登录,因为这会将我的密码暴露给全世界。

我不明白这是如何发生的。 SSH 身份验证通过加密连接进行,因此您只需将密码暴露给远程主机(以及您自己的计算机)。如果您在其他系统中使用相同的密码(您不应该这样做),或者不小心将密码输入到错误的系统,这当然可能会成为问题。

无论如何,如果您不能使用密码,也不能使用基于密钥的身份验证,我想知道您是如何做到这一点的sudo

由于我以管理员身份登录,因此无法删除管理员。

我对此不太确定。一些“用户友好”实用程序可能会尝试告诉您不要这样做,但是vipw只要您运行了超级用户级 shell,就没有什么可以阻止您编辑用户数据库(使用或其他方式)或删除文件。当然,如果您在执行此操作时连接中断,则可能会遇到问题。

也至少Debianuserdel也有这个--force选项删除用户,即使他们仍然登录。

答案2

一种可能性是禁用用户(将密码设为空并删除 sudo 权限)。您可以通过 sudo 作为该用户执行此操作。注销后,您将无法再登录。

另一种方法是使用以 root 身份运行的 cron 作业,验证用户是否存在/home/admin,并在这种情况下删除用户。

答案3

您可以安排时间以供以后使用at。作为root

at 18:00 <<HERE
/usr/sbin/deluser --remove-home admin
HERE

使用 检查队列atq,使用 删除作业atrm <ID>

假设at已安装且守护进程正在运行(例如atd.service通过 systemd)

相关内容