是否有一个脚本在用户登录时以 root 身份运行?

是否有一个脚本在用户登录时以 root 身份运行?

当用户登录时,我需要执行一个需要升级权限的命令。我不想授予该用户该命令的 sudo 访问权限。我只想为该用户运行此脚本,而不是为所有用户运行。

答案1

根据您的评论,听起来您希望用户“fred”不拥有常规 shell,而是在登录时运行脚本“foo”。如果您不希望 Fred 费尽心思逃离他的“沙盒”,这很容易做到。

$ cat ~fred/.bash_login
#!/bin/bash
exec /usr/local/bin/foo

## in ubuntu each user has a group of his "own"
$ sudo chown foo:fred ~fred ~fred/.bash_login /usr/local/bin/foo
## prevent fred from altering the files and directories we care about
$ sudo chmod g-w ~fred ~fred/.bash_login /usr/local/bin/foo
## make script foo run with user foo's privileges
$ sudo chmod u+s /usr/local/bin/foo 

因此 fred 现在甚至不会得到 shell 提示,因为他的登录 shell 所做的第一件事就是用 foo 替换自己;当脚本 foo 退出时,fred 将被注销。Fred 缺乏爬出此沙箱的动力的原因是许多程序允许打开下级 shell,这将允许 fred 撤消此处显示的穷人锁定。

使用此方法以“root”而不是某些非超级用户 foo 可用于劫持 root,所以不要这样做。

答案2

我会使用chmod 6755 filename (或者 6711,如果你不想被其他用户读取的话),然后将其放入 cron... 这应该可行,因为它是作为所有者运行此文件的权限。因此,如果您以 root 身份创建它,您应该能够像这样使用它...

相关内容