sysctl
将这么多的配置文件分成多个目录是否有一个合理的理由?
我不能删除所有sysctl.d
配置文件并将所有内容放进去,有什么原因吗/etc/sysctl.conf
?
我的系统正在运行 Xubuntu 20.04 和sysctl.d
目录:
/etc/sysctl.d/
/usr/lib/sysctl.d/
但是必须有其他带有sysctl
键的配置文件,因为如果我运行:
# sudo sysctl --system
它输出我的自定义文件中的所有键/etc/sysctl.conf
以及来自各种文件的所有键sysctl.d
。
但是,如果我运行:
# sudo sysctl -a
它输出大量未明确设置的键(无论如何由我设置)。
sysctl
我想我确实需要知道如何找到将密钥加载到内核的所有配置文件。
man sysctl
sysctl
仅列出配置文件的总共 6 个可能位置:
/run/sysctl.d/
但它并不存在。/etc/sysctl.d/
其中包含由操作系统生成的 8 个配置文件和99-sysctl.conf
指向 的符号链接/etc/sysctl.conf
。/usr/local/lib/sysctl.d/
但它并不存在。/usr/lib/sysctl.d/
其中包含了OS设置的3个文件。/lib/sysctl.d/
/usr/lib/sysctl.d/
尽管它没有显示符号链接,但其含义是一样的。/etc/sysctl.conf
我大量修改过的sysctl
文件。
我查看了所有单独的配置文件,它们甚至占不到sysctl
加载到内核的键的一半。我知道有些应用程序可以设置sysctl
键,但一定有其他配置文件将所有这些键加载到内核中。
除了sysctl
命令选项之外,手册页没有任何其他数据。
答案1
/run/sysctl.d/
但它并不存在。
/run
是临时的,其中的更改在重启后会丢失。因此,插入配置文件/run
用于修改当前启动,但不会在重启后保留这些更改。
/etc/sysctl.d/
其中包含由操作系统生成的 8 个配置文件和99-sysctl.conf
指向 的符号链接/etc/sysctl.conf
。
这是保存允许管理员修改的软件包配置的地方。dpkg
当您的编辑与软件包更新冲突时会通知您。
/usr/local/lib/sysctl.d/
但它并不存在。
/usr/local
是供管理员使用的,软件包不会在那里做任何事情。如果需要,您应该创建该目录。
/usr/lib/sysctl.d/
其中包含了OS设置的3个文件。
中的文件/usr/lib
不应由管理员修改。软件包更新将覆盖此处的更改。
/lib/sysctl.d/
/usr/lib/sysctl.d/
尽管它没有显示符号链接,但其含义是一样的。
自从合并/usr
、、、等是指向 中相应目录的符号/bin
链接。/lib
/usr
/etc/sysctl.conf
我大量修改过的sysctl
文件。
保留它是为了向后兼容,因为人们(以及脚本和其他工具)仍然会期待它。
当您可以添加或删除包含所需内容的文件时,以事务方式修改配置是最容易的,而不是使用正则表达式或其他任何方式来修改配置文件中间的一行,而配置文件中充满了谁知道是什么。也就是说,允许插入配置文件的目录比单个配置文件更可取。