在 /dev/stdout 上运行用户和权限被拒绝

Ste*_*lli 3 bash permission-denied

我在 bash 脚本上遇到了一个问题,即: - 在系统启动时或按需由“root”执行 - 运行具有“stefano”权限的脚本 - 如果由“root”或“/”触发,则重定向日志文件上的输出dev/stdout" 如果由 "stefano" 触发:

 #!/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"
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到一个 bash: /dev/stdout: Permission denied

如果命令由 root 触发,为什么用户“stefano”无法在 /dev/stdout 上写入?

显然作为stefano> echo "I am Stefano" >> /dev/stdout没有得到任何错误。

在此先感谢您的帮助!Stefano, 米兰, 意大利

Arm*_*ali 5

如果命令由 root 触发,为什么用户“stefano”无法在 /dev/stdout 上写入?

那可能是因为终端设备归root所有,其他人没有写权限。试试吧/dev/tty