Почему для *nix не прижился какой-нибудь стандартный конфигуратор софта:
$ conf get sshd.tcpkeepalive
no
$ conf get-default sshd.tcpkeepalive
yes
$ conf show sshd.tcpkeepalive
# Specifies whether the system should send TCP keepalive
# messages to the other side. If they are sent, death of
# the connection or crash of one of the machines will be
# properly noticed.
sshd.tcpkeepalive=no
$ conf set sshd.tcpkeepalive=yes
$ conf get sshd.tcpkeepalive
yes
$ conf add ssh custom_var --type dir --comment "blalala"
$ conf add ssh custom_var.subwar1 --type string --comment "blalala path"
$ conf add ssh custom_var.subwar2 --type int --comment "blalala magic number"
Все известные мне конфиги в такую схему укладываются. Права на изменение раздавать стандартным способом на каталоги, которые и будут лежать где-нибудь в /conf.
За количество человеко-лет, потраченных на автоматический разбор/написание всяческих конфигов, можно было:
- допилить Hurd
- решить в иксах проблемы с тирингом
- запилить в ванильное ядро MPLS
- основать колонию на Марсе
Update:
Почему это не реестр:
- Коменты
- Это не единый файл БД, а набор файлов, просто со стандартным API и command-line tools для работы. Поддаётся синхронизации с удалённым источником, ручной правке с помощью regexp и какой-то там матери, вобщем всё как с обычными файлами, но единообразно для всех программ.
- Один каталог верхнего уровня для каждой программы, в менеджере пакетов по ним информация. Каталоги, не относящиеся ни к какому пакету, можно легко выявить и удалить.