我正在创建一个自控工具对于管理员来说。该脚本由管理员运行时会自动放弃管理员权限。管理员可以通过再次运行脚本来重新获得管理员权限,但会面临故意延迟(例如 20 分钟)。
这样做的好方法是什么?
我的解决方案
假设管理员名为my-admin
。我当前的解决方案如下:
- 添加一个文件,
/etc/sudoers.d
允许以 rootmy-admin
身份运行脚本/usr/local/bin/delayed-admin
。 - 该脚本
/usr/local/bin/delayed-admin
执行以下操作: 如果my-admin
是组的一部分admin
,则会将其从组中删除。如果my-admin
不在admin
组中,则它会休眠 20 分钟,然后将其添加到admin
组中。
这似乎可行,但我不喜欢每次都弄乱 sudoer 文件的想法。
答案1
我对此会非常谨慎,因为它会被视为一个主要的安全漏洞,因为任何人都可能运行此脚本并获得对您系统的管理员访问权限。
提供 sudoers 和 suders.d 配置的替代方案。我建议让脚本检查您是否属于管理员组,然后运行 achmod -aG admins my-admin
添加帐户或gpasswd -d my-admin admins
运行 a 删除帐户。