我有一个sudoers文件存储在我们的svn回购。我想将其svn export为/etc/sudoers,但不能这样做,因为sudo检测到它没有被visudo编辑,并抛出语法错误。visudo -f到底是做什么的,我可以做以下工作:
cd /tmp && svn export <URL>/sudoers && visudo < /tmp/sudoers不需要人工干预?
发布于 2013-06-13 22:00:41
这可能不是因为它没有被visudo编辑,而是因为它确实存在语法错误。还检查权限。不使用/etc/sudoers完全可以编辑visudo。在提交到实际文件之前,visudo只是为了保证独占访问和检查语法。话虽如此,为了回答你的问题,你可以:
VISUAL="cp /tmp/sudoers" visudovisudo用/etc/sudoers.tmp调用您的首选编辑器,在编辑器返回后检查文件新内容的语法,并在高兴时提交给/etc/sudoers。通过将首选编辑器设置为cp /tmp/sudoers,实际上是告诉它执行cp /tmp/sudoers /etc/sudoers.tmp。
(将sudoers临时文件存储在/tmp这样的世界可写目录中听起来很危险)
发布于 2013-06-14 05:11:39
我一直在编辑和部署sudoers。请确保执行以下操作:
visudo -c -f <filename>检查语法。0440,并由root:root (或BSD衍生产品上的root:wheel )拥有。如果您用来签入的主机运行的操作系统与部署到的操作系统不同,那么在将其复制到适当的位置之前,您还应该在目标系统上运行visudo -c -f <filename>。
https://unix.stackexchange.com/questions/79338
复制相似问题