我正在使用带有 sudo 1.6.9p23 的 AIX 5.3。 Sudoers 文件授予用户fcomartin
以用户身份运行任何命令的权限oas
:
fcomarti ALL=(oas) ALL
用户oas
有一个名为 menu 的 bash 脚本,它根据所选选项启动其他脚本。
问题是某些辅助脚本将标准输出重定向到用户temp
拥有的文本文件oas
。发生这种情况时,系统告诉我用户没有正确的写入权限。
用户fcomarti
使用ksh,使用的命令如下:
sudo -u oas bash menu
(bash 因为用户oas
使用 bash)。
菜单启动,然后菜单启动 monitorAv 脚本。在monitorAv里面是一行echo > temp
;然后它会错误说用户fcomarti
没有正确的写入权限。
我该如何解决这个问题?
答案1
编辑该脚本,不要运行sudo something > here
,像这样使用它sudo sh -c "something > here"
man
redirection
可能非常有用,在 中搜索man sudo
。
答案2
我终于解决了这个问题,sudo的语法如下:
sudo -u oas bash -c "cd /Oas/bin; menu"
这是因为一些由菜单启动的辅助脚本需要绝对路径才能工作。