有没有一种方法可以拥有一个一次性 sudo 帐户?
我的用例如下。
我有一个 Ubuntu 站,不允许对该机器进行远程 ssh。该机器一般用作公用计算机。但有时我想根据短信或即时消息通信等方式向某些人(我个人认识的人)授予 root 访问权限。当然,我并不是说给予他们完全的 root 访问权限,只是限制他们使用某些命令,例如apt-get
类似的命令。我绝不打算允许他们写信给/etc
.
但显然我不想分享 root 密码。而且我也不希望这些人永远拥有 root 访问权限,也不想手动删除帐户或更改密码。
因此,我考虑创建一个(足够大的)根访问帐户并将其密码保存到我的笔记本电脑或手机上。如果我需要向某人提供 root 访问权限,我只需向他发送一个帐户的登录信息,该帐户将在 sudo 密码缓存超时结束时被删除。
您认为这是一个好方法吗?如果是,在哪里以及如何设置删除脚本?
答案1
我从来没有见过像一次性 sudo 这样的东西,但你仍然可以sudo
通过设置一次性密码来获得一次。 Linux Journal 上有一篇文章,标题为:使用 OTPW 配置一次性密码身份验证,涵盖了执行此操作的各种方法。他们讨论了 3 个软件包来促进这一点:
我从未使用过其中任何一个,所以我无法为您提供任何使用它们的指导或实践经验,但 LJ 文章和我喜欢的资源看起来拥有入门所需的一切。
答案2
如果您授予用户以 root 身份运行任意命令的权限,他们就可以植入后门。虽然安装起来并不容易根工具包在不被发现的情况下,其他人已经完成了艰苦的工作,您可以下载并安装预制的 Rootkit。因此,从安全角度来看,一次性 root 访问并不比永久 root 访问受到更多限制。
如果您信任该用户,请授予他们 sudo 访问权限,并稍后取消该访问权限。如果您不信任用户,请不要授予他们 sudo 访问权限。
如果您想授予用户运行特定命令的权限,那么限时 sudo 访问就有意义。但允许一次性访问并没有任何好处。在某个时间点授予他们访问权限,然后再取消该访问权限。例如,您可以通过向 sudoers 文件添加一行并设置 at 作业来删除该行来授予 24 小时访问权限。