我有一个带有网站 /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/chmod
,sudo
但您尝试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_keys
on中8.8.8.8
,然后直接调用,find...
无需sudo command
。