Witch user X,我正在运行一个脚本,将文件生成为临时DIR A。
在我的脚本结束时,我需要将所有生成的文件复制到DIR B中,但需要将特定用户userY复制到该新DIR中。
所以我有:
/home/X/test.txt,权限为userX / groupX
我需要这个:
/var/out/test.txt,权限为userY / groupY
脚本不是以root身份执行的,所以我不能只将文件复制为用户A并执行 chown
我的想法是在我的脚本中添加它:
for file in "$OUTPUT_DIR"/*.txt
do
sudo su - userY<<'EOF'
cp $file /var/out/
EOF
done
我修改了sudoers文件,因此在执行su时它没有提示我输入密码。
该方法存在的问题是我的cp
命令无法正常工作,因为在对用户进行$file
时,不会保留变量su
。
我已经阅读了很多其他帖子,说我可以使用sudo -E
或su -m
来保存环境变量,但这需要特定的权限,而且似乎也不起作用。< / p>
我也试过这个解决方案:
su userY -c "cp $file $dest"
但由于我的命令有变量,即使我将su userY -c
添加到sudoers文件,它仍然要求我输入密码,因为我的命令包含变量并且永远不会相同..
我觉得我的问题有一个更简单的解决方案......