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

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

根据您的评论,听起来您希望用户’fred’没有常规shell,但在登录时运行脚本’foo’。 如果你不希望弗雷德努力逃脱他的“沙盒”,这可以轻松完成。

$ 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 gw ~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将被注销。 弗雷德缺乏爬出这个沙箱的动机的原因是许多程序允许打开下属shell,这将允许弗雷德撤消这里显示的穷人的锁定。

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

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