在没有 root 用户的情况下执行 root 命令避免密码提示

Execute root command with no root user avoiding password prompt

我有一个 script.sh 文件执行以下命令:

chown -R apache:apache /var/www/html/my/data

如果我尝试使用非 root 用户(用户名 = marco)执行,提示密码会停止脚本等待输入。

我正在尝试配置添加以下行的 /etc/sudoers 文件,但其中 none 行有效,并且总是提示我输入 sudo 密码:

marco ALL=(ALL:ALL) NOPASSWD:/my/directory/structure/script.sh
marco ALL=(ALL) ALL

有线索吗? 谢谢。

如果只需要运行chown的root权限,那么就没有必要给整个脚本root权限。放置在脚本中:

sudo chown -R apache:apache /var/www/html/my/data

并且,使用 sudoedit,添加行:

marco ALL=(ALL:ALL) NOPASSWD:chown -R apache:apache /var/www/html/my/data