考虑到已安装的驱动器中存在目录层次结构
|-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