对于unix人来说,这可能不是一件容易的事。只是想问一个简单的查询。 我创建了3个脚本:
wrapper.sh
inside1.sh
和inside2.sh
。在wrapper.sh中,我正在调用inside1.sh
和inside2.sh
。现在我以用户bob
身份登录,在sudoers文件中,我已授予bob权限,以root身份运行wrapper.sh
。
我故意没有为用户bob
提供所有3个脚本的读取或执行访问权限。所以' bob'看不到现有的脚本。
现在,因为我在sudoers中添加了wrapper.sh
,所以我能够以root身份运行wrapper.sh
文件。 wrapper.sh
内的id命令打印id=0
。
但是当调用inside1.sh
或inside2.sh
的行执行时,会出现错误,指出inside1.sh
- 未找到。
所以来看我的问题:
如果shell脚本设置为在sudoers文件中以root身份运行,并且该shell脚本调用多个其他shell脚本,那么其他脚本是否会以root
执行?权限会级联吗?
有人可以澄清吗?感谢您的耐心等待。
答案 0 :(得分:0)
inside1.sh
的整个路径必须以root身份打开,否则他将无法查看该文件。要检查这一点,请运行类似
U_PATH= < path to inside1.sh >
LIST=` echo ${U_PATH} | sed "s/\// /g" `
T_PATH=""
for x in $LIST
do
echo ${x}
T_PATH=${T_PATH}/${x}
ls -lsd ${T_PATH}
done
并检查所有内容是由root拥有还是作为权限&gt; 555。