【发布时间】:2013-05-20 18:59:58
【问题描述】:
我在 bash 脚本上有一个问题: - 由“root”在系统启动时或按需执行 - 运行具有“stefano”权限的脚本 - 如果由“root”触发,则在日志文件上重定向输出,如果由“stefano”触发,则在“/dev/stdout”上重定向输出:
#!/bin/bash
[ "$1" == "log" ] && log="$2" || log="/dev/stdout"
if [ "`/usr/bin/whoami`" != "stefano" ]; then
echo "You are not allowed"
exit 9
fi
runuser -s /bin/bash stefano -c "echo I am Stefano >> $log"
在这种情况下,我得到一个bash: /dev/stdout: Permission denied
如果命令由 root 触发,为什么用户“stefano”不能在 /dev/stdout 上写入?
显然充当stefano> echo "I am Stefano" >> /dev/stdout 不会出错。
提前感谢您的帮助! Stefano,米兰,意大利
【问题讨论】: