我想要配置无密码的 sudoedit,以便编辑除/etc
sudoers 文件本身之外的文件。
我尝试使用以下方法/etc/sudoers.d/sudoedit
:
%sudo ALL=(root) NOPASSWD: sudoedit ^/etc/(?!sudo).*$
但这似乎不起作用,因为 sudo 使用了没有负向前瞻功能的旧正则表达式引擎。
还有其他方法可以实现这一点吗?也许结合/etc
和否定!/etc/sudo
?
我想要配置无密码的 sudoedit,以便编辑除/etc
sudoers 文件本身之外的文件。
我尝试使用以下方法/etc/sudoers.d/sudoedit
:
%sudo ALL=(root) NOPASSWD: sudoedit ^/etc/(?!sudo).*$
但这似乎不起作用,因为 sudo 使用了没有负向前瞻功能的旧正则表达式引擎。
还有其他方法可以实现这一点吗?也许结合/etc
和否定!/etc/sudo
?
我不是
sudo
专家,但你也许可以利用后面的模式优先,因此使用正则表达式尝试包含 下的所有合理路径
/etc
,其中包括带有.
和_
等的文件。下一行禁止sudo
出现 ,以避免/etc/./sudoers
。最后一行禁止..
,这避免了/etc/../
。可能仍有一些不允许但应该允许的特殊文件,例如 systemd 的文件名中包含\x2d
,并且可能存在包含 的文件名,sudo
而这些文件名不在 内/etc/sudoers.d/
。