如何以 Sudo 用户身份复制文件和目录

如何以 Sudo 用户身份复制文件和目录

我使用我的 ID(例如“A”)登录 Linux。然后我将使用 sudo 到用户“B”而无需输入密码,之后我将使用 SUdo 用户“B”将一些文件从 X 文件夹复制到 Y 文件夹。

我正在尝试使用 shell 脚本执行此活动并将其放入 cronjob 中...到目前为止还没有成功。

任何帮助都将非常感谢...

这就是我正在尝试的……

#!/bin/sh
sudo /usr/local/sbin/deploy
cp -r /tmp/test /tmp/deploy

答案1

您还必须运行cpwith 。否则,将使用所有者创建文件,然后无法读取它们(因为脚本中的 完成后,shell 会将您返回到原始用户)。sudodeployBcpsudo

或者,运行chmodsudo使文件可读A,然后进行复制。

答案2

sudo 仅在命令行上运行命令,然后返回到调用者的帐户。如果您想以另一个用户身份运行多个命令,最好创建一个脚本并通过 sudo 运行该脚本。

答案3

须藤是一个交互式命令。在 cron 作业中使用它没有意义。您可以创建一个超级用户脚本来复制所有文件,然后更改所有权,或者由所需用户自己运行该脚本。

答案4

尝试一下:例如,如果您的用户名是“james”,请将以下条目添加到/etc/sudoers或添加到单独的/etc/sudoers.d/文件中。此后,您可以将文件从源复制到目标,而无需输入密码。

# visudo 
james  ALL=(ALL) NOPASSWD: /bin/cp

相关内容