为什么 sudo -u 不适用于用户拥有的文件夹

为什么 sudo -u 不适用于用户拥有的文件夹

考虑到已安装的驱动器中存在目录层次结构

|-ssd-drive
    |-main
        |-sub

以下是文件夹 main、sub 的访问

 drwxrwxrwx. 12 poweruser devgroup 4096 Oct 26 18:45 main
 drwxrwxr-x. 8 poweruser poweruser 4096 Oct 26 19:01  sub

现在,当我尝试poweruser代表用户运行 shell 脚本并在目录下输出日志时sub,由于权限问题而失败

[myaccount@vm-002 log]$ sudo -u poweruser /script.sh  > /ssd-drive/main/sub/app.log 2>&1
-bash: /ssd-drive/main/sub/app.log: Permission denied

为什么sudo -u poweruser在这种情况下不起作用?它是所属目录的所有者 

答案1

正如 Steeldriver 所提到的 - 重定向不是 sudo 的一部分。

解决方法是通过 bash 运行:

sudo -u poweruser bash -c "/script.sh  > /ssd-drive/main/sub/app.log 2>&1"

这样,重定向是由 bash 的新实例处理的,该实例运行为poweruser

相关内容