我正在使用 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。