sudo:从另一个脚本启动的脚本不会重定向标准输出

时间:2012-11-14 18:06:32

标签: stdout sudo

我正在使用带有sudo 1.6.9p23的AIX 5.3。 Sudoers文件授予用户fcomartin权限以用户oas运行任何命令:

fcomarti ALL=(oas) ALL 

用户oas有一个名为menu的bash脚本,根据所选的选项,它会根据该脚本启动另一个脚本。问题是某些辅助脚本将标准输出重定向到由oas用户拥有的文本文件“temp”,当发生这种情况时,系统会告诉我用户没有正确的写入权限。

用户fcomarti使用ksh,然后使用的命令如下:

sudo -u oas bash menu

(bash因为用户oas使用bash)菜单启动,菜单启动monitorAv脚本,内部monitorAv是行回显> temp,然后告诉用户fcomarti它没有正确的写权限。

2 个答案:

答案 0 :(得分:0)

脚本以用户oas而非用户fcomarti运行,因此如果它尝试写入fcomarti所拥有的目录中的文件,则可能不会拥有适当的权限。

您可以让用户oas与用户fcomarti共享一个组,然后授予对某些目录的组写权限,或者您可以将脚本输出到{{1}可写的位置用户(例如,oas或您为此目的明确创建的某个目录,例如用户/tmp的{​​{1}}目录。)

答案 1 :(得分:0)

我终于解决了这个问题,sudo的sintaxis如下:

sudo -u oas bash -c "cd /Oas/bin; menu"

这是因为菜单启动的一些辅助脚本需要绝对的路径才能工作。