visudo 说有语法错误

visudo 说有语法错误

我正在使用 centos 8。因此,我的目的是让用户管理器能够运行此命令,而无需使用 sudo。

manager ALL=NOPASSWD: tar -czf /root/assignment/result/student-submissions-$(date +\%Y-\%m-\%d).tar.gz /root/assignment/report/main/

输出如下:

/etc/sudoers: syntax error near line 122

第 122 行是上述代码的第一行。

答案1

当我在系统上运行它时,我也收到语法错误。我已完成以下操作:

在 sudoers 文件的顶部(“defaults”行下),添加以下行(您想要无需密码运行的命令):

Cmnd_Alias TAR_COMMAND = /usr/bin/tar -czf /root/assignment/result/student-submissions-*.tar.gz /root/assignment/report/main/

我在文件名中使用的通配符 * 是为了确保命令在涉及 tar.gz 文件名时可能会有所不同。这样您就不必使用日期变量。

现在在末尾添加以下行:

manager ALL= NOPASSWD: TAR_COMMAND

尝试一下是否适合你

附言:始终使用可执行文件的完整路径。仅使用“tar”时,每个名为“tar”的二进制文件都可以从任何文件夹运行,无需密码。使用完整路径可确保您只能运行 /usr/bin/tar。

相关内容