如何让非 root 用户使用 cp 命令替换文件 /etc/hosts,而无需使用 sudo 命令?

如何让非 root 用户使用 cp 命令替换文件 /etc/hosts,而无需使用 sudo 命令?

在我的 lubuntu 22.04 上,我需要更改文件/etc/hosts。为此,我将执行以下命令:

> /usr/bin/cp /path/to/new_hosts /etc/hosts

由非 root 用户使用,无需 sudo 命令。为此,我在文件中添加了以下行/etc/sudoers

<username> ALL = (root) NOPASSWD: /usr/bin/cp /path/to/new_hosts /etc/hosts

/etc/sudoers我已经通过命令检查了正确的语法:

> sudo visudo -c /etc/sudoers

该命令的输出是:

/etc/sudoers: parsed OK
/etc/sudoers.d/10-installer: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/kdesu-sudoers: parsed OK

该消息/etc/sudoers: parsed OK向我保证的语法/etc/sudoers是正确的。

当我cp通过终端执行命令时,结果是Permission denied

错误在哪里?

答案1

您需要使用以下命令运行命令sudo

sudo /usr/bin/cp /path/to/new_hosts /etc/hosts

否则,该sudoers文件将不被考虑。

相关内容