你的问题基本上包括答案….一个脚本,它将遍历每个用户家的子目录,寻找可执行脚本.然后它sudo -u user /export/home/user/scripts/scriptname.sh start.您无法控制脚本的功能,因此您需要信任您的用户.
坚持他们编写脚本以接受停止启动重启为$1 param并且他们不应该使用在.profile,.cshrc或.bashrc文件中设置的任何环境变量.该脚本实际上需要是独立的.
#!/usr/bin/bash
run_cmd {
cd /export/home
for HOMEDIR in *; do
for SCRIPT in /export/home/$HOMEDIR/scripts/*; do
if [ -x $SCRIPT ]; then
echo "$ACTION user $HOMEDIR's script $SCRIPT"
sudo -u $HOMEDIR $SCRIPT $ACTION &
fi
done
done
}
case $1 in
start) ACTION=start;
run_cmd;;
stop) ACTION=stop;
run_cmd;;
restart) ACTION=stop;
run_cmd;
sleep 60;
ACTION=start;
run_cmd;;
*) echo "$1 not recognized as valid cmd";;
esac
exit 0
您需要针对您的环境,bash / homedirs等的位置进行调整.