如果我想在主脚本文件中以特定用户身份调用另一个shell脚本,我该如何去做呢?孩子的脚本似乎松散了它运行的用户的上下文,我还没有找到任何有用的子脚本技术。运行shell脚本作为父脚本的用户
例:war-install.sh
if [ ! -d /opt/tomcat/ ]
then
./tomcat-install-files/install.sh
fi
这里的问题是,如果我跑war-install.sh作为root或使用sudo命令,./tomcat-install-files/install.sh似乎失去了sudo/root的上下文。我该如何纠正这一点?
谢谢!
它不应该(改变用户),除非子命令自己的setuid后:但一般以其他用户身份运行命令(如果shell脚本不好主意!)。是什么让你认为它失去了sudo用户? – torek 2012-03-11 04:28:15
如果我运行命令“sudo ./tomcat-install-files/install.sh”,脚本运行良好。但是,如果我运行“sudo war-install.sh”,一旦它调用install.sh,我会得到一堆“权限被拒绝”错误。 – Roosh 2012-03-11 05:18:38
以上是war-install.sh的全部内容吗?/opt/tomcat /是否作为目录存在?假设“否”(还有更多)和“否”(所以它到达./行)是“。”仍然指向那个地方的同一个地方? (在调用./tomcat-install-files/install.sh之前,尝试设置-x和/或在那里执行'pwd')。 – torek 2012-03-11 05:53:49