将文件作为另一个用户复制到脚本中的特定目录

时间:2016-01-19 10:02:15

标签: shell unix aix su

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 -Esu -m来保存环境变量,但这需要特定的权限,而且似乎也不起作用。< / p>

我也试过这个解决方案:

su userY -c "cp $file $dest"

但由于我的命令有变量,即使我将su userY -c添加到sudoers文件,它仍然要求我输入密码,因为我的命令包含变量并且永远不会相同..

我觉得我的问题有一个更简单的解决方案......

0 个答案:

没有答案