我使用我的 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
您还必须运行cp
with 。否则,将使用所有者创建文件,然后无法读取它们(因为脚本中的 完成后,shell 会将您返回到原始用户)。sudo
deploy
B
cp
sudo
或者,运行chmod
以sudo
使文件可读A
,然后进行复制。
答案2
sudo 仅在命令行上运行命令,然后返回到调用者的帐户。如果您想以另一个用户身份运行多个命令,最好创建一个脚本并通过 sudo 运行该脚本。
答案3
须藤是一个交互式命令。在 cron 作业中使用它没有意义。您可以创建一个超级用户脚本来复制所有文件,然后更改所有权,或者由所需用户自己运行该脚本。
答案4
尝试一下:例如,如果您的用户名是“james”,请将以下条目添加到/etc/sudoers
或添加到单独的/etc/sudoers.d/
文件中。此后,您可以将文件从源复制到目标,而无需输入密码。
# visudo
james ALL=(ALL) NOPASSWD: /bin/cp