受oneStack脚本启发:

原来是可以轻松实现强制脚本使用某用户权限执行的。

脚本内容如下:

#!/bin/bash
# filename: test.sh
# email: wangxiaoyu@Live.com
# date: 2013-09-02
user="root"
if [ `whoami` != "${user}" ]; then
        exec su - "${user}" -c "sh ${PWD}/test.sh"
fi
echo "以下为脚本主体内容"
id
echo "执行id命令结束"


调试信息如下:

xiaoyuwang@localhost:~$ sh -x test.sh

+ user=root

+ whoami

+ [ xiaoyuwang != root ]

+ exec su - root -c sh /home/xiaoyuwang/test.sh

Password:

以下为脚本主体内容

uid=0(root) gid=0(root) groups=0(root)

执行id命令结束