为什么 sudoers.d 会忽略带有点的文件名?

为什么 sudoers.d 会忽略带有点的文件名?

默认情况下,sudo 解析/etc/sudoers.d/*文件名中不包含.和 的配置文件~,意味着user.conf被忽略并被user_conf解析。

为什么 /etc/sudoers.d 会忽略带点的文件?这似乎是一个奇怪的决定,肯定会让很多系统管理员感到困扰?我浪费了很多时间才弄清楚为什么

/etc/sudoers.d/hans.conf

没用〜

答案1

man 5 sudoers[强调我的]:

@includedir指令可用于创建一个sudoers.d目录,系统包管理器可以在包安装过程中将 sudoers 文件规则放入该目录中。例如,给定:

@includedir /etc/sudoers.d

sudo将暂停处理当前文件并读取每个文件/etc/sudoers.d,跳过以字符结尾~或包含.字符的文件名避免导致包管理器或编辑器临时/备份文件出现问题

答案2

它试图忽略软件包管理器可能留下的所有可能的“备份”文件。例如,如果/etc/sudoers.d/foo是或已经作为软件包的一部分分发,那么您可能在某个时候拥有foo.dpkg-newfoo.rpmoldfoo.pacsavefoo.ucf-new,它们都不应该处于“活动”状态(它们要么属于已删除的软件包,要么是要安装的新版本)。

其他工具通常选择要求特定的后缀(例如,仅接受*.conf而忽略其余部分);而 sudo 则选择拒绝任何带有后缀的文件名。

相关内容