rsync 到服务器并设置所有权和权限,使用 sudo

rsync 到服务器并设置所有权和权限,使用 sudo

我有一个带有网站 /var/www/html/website 的服务器。

我使用 rsync 传输更新的文件:

rsync -avzu --no-perms --no-owner --no-group --chown=user:www-data --progress /mnt/c/xampp7/htdocs/wbsite/ [email protected]:/var/www/html/website

--chown=user:www-data不起作用,因为我需要使用 sudo。

我已向 sudoers 添加了以下行:

user ALL=NOPASSWD: /bin/chmod, /bin/chown, /bin/chgrp

但如果我尝试

ssh [email protected] "sudo find /var/www/html/website -type f -exec chmod 664 {} +"

我明白了sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper

我需要自动化这个操作,所以输入密码是不行的,而且虽然我想使用 git,但我不能。

答案1

该 sudoers 条目允许您使用 运行/bin/chmodsudo但您尝试sudo在整个find命令上使用,因此它不适用。因此sudo只需使用/bin/chmod 里面-exec

ssh [email protected] "find /var/www/html/website -type f -exec sudo /bin/chmod 664 {} +"

答案2

然后,您需要将其添加user到 8.8.8.8 上的 sudoers 列表,以允许它提升权限而无需使用命令密码find

或者,将公钥从user复制到.ssh/authorized_keyson中8.8.8.8,然后直接调用,find...无需sudo command

相关内容