Где лежат конфиги linux

Куда ставить программу и где хранить конфигурацию?

Пишу небольшую программу. По роду её деятельности она должна оставлять некие файлы с историей, конфигурацией, начальтыми значениями, ограничениями. И ещё должна выполняться от root. Хотелось бы , чтоб файлы конфигурации этой программы были в

/.имя_программы/. Но так как программа выполняется от root то и

указывает не на домашнюю папку пользователя. Как вы мне посоветуете поступить? МОжет при компиляции задать как-то параметры некоторых констант домашней папки? Но тогда если пользователь смениться или удалится папка — программу нужно будет перекомпилировать. И куда лучше устанавливать программу когда делается make install? Ведь в лине программы лежат где только им не лень — всё, что прописано в PATH. А Куда правильней её устанавливать мне? Так, чтоб работало на ,хотябы , на большинстве дистрибутивов. Вот к примеру сейчас у меня программа лежить в /home/alex/bin/rempac. Я её после компиляции нагло туда скопировал и добавил /home/alex/bin/ в PATH. А конфигурация хранится в папке /usr/share/rempac (Забито константами в программу) Как бы это сделать правильней? умней что-ли.

Суть программы

Сть программы предельна проста. Я замучался при перестановке системы ставить снова весь софт, и вспоминать что мне нужно, а потом выясняется, что что-то я забыл и приходится доставлять. Поэтому я написал програмульку rempac, которая будет вызыватся вместо стандартной(pacman, yaoutr,yum, apt-get) Принимать анологичные параметры,что и в этих программах(смотря какую использует) и сохранять в фаил названия программы которые устанавляиваются. Так при следующей установке\переустановке, мне не нужно будет нервничать, что я зыбыл что-то поствить.

Разделите программу на фронтенд и бекенд. Фронтенд пусть хранит конфиги/логи в

/.config/имя_программы и запускает с правами root’а бекенд, который делает, что ему нужно.

И для этого вам понадобился свой велосипед? Мда.

90 % линукса недостроенные велосипеды

Не знал , что это реализовано в pacman и yaourt, спасибо. Но оскорбление с вашей стороны лишнее. Я не писал её от безисходности, вполне ясно , что такое уже кем-то реализовано и стоит поискать.Но интерес, навыки — дороже. С другой стороны, написание программы заняло около полутора часа с кофе и разговорами. И моя программа универсальна для любого дистрибутива и менеджера пакетов. И я спокойно могу взять свой лист программ и установить позже какую-то бубунту. так-же не заморачиваясь. Вот сейчас кое-что для меня новое — это установка программы. Как и куда правильно устанавливать, и где хранить конфиги.

Возможно вы правы. Идея работоспособна. Но, неужели все программы, которые требуют права root, и хотят хнаить конфигурацию в homedir пользователя делают такой костыль?

Был комментарий в котором соведомалось использовать suid. Я его сейчас не вижу. Вот не много почитал, и написал тестовый пример. Не работает.

Так как функции makedir() fopen, и прочие не воспринимают символ «

» в пути к файлу, я получаю домашнюю директорию способом, описаным выше.

Но, неужели все программы, которые требуют права root, и хотят хнаить конфигурацию в homedir пользователя делают такой костыль?

Программы, которые требуют рута, хранят конфиги в каталоге рута, потому что если программе нужен рут, то она выполняет какое-то действие над всей системой, поэтому и конфиг должен быть общесистемный и храниться в хоуме рута, а не в хоуме пользователя.

А каталоги, в которых должны лежать конфиги, описаны спецификацией: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html. Вкратце: конфиги лежат в подкаталогах каталога $XDG_CONFIG_HOME, т.е. нужно читать переменную окружения. Если она не установлена, для неё предназначены дефолтные значения типа $HOME/.config.

Заставьте бекэнд читать конфиг и передавать настройки фронтэнду другим способом — через параметры командной строки, например.

Re: Суть программы

Я замучался при перестановке системы ставить снова весь софт

перестань пользоваться виндой

Слава богу уже не пользуюсь виндоу уже который год. Идея про бекэнд и фронтэнд мне понравилась. Спасибо.

90 % линукса недостроенные велосипеды

И по этой причине нужно городить еще один?

Читайте также:  Файловый ввод вывод windows

Нужно. Свои велосипеды — классная штука. Они позволяют действительно развиватся и на деле делать что-то полезное, пусть только для себя, но полезное. В частности, на этом велосипеде я научился работать с файловыми потоками, не много пошупал make, более не менее освоил emacs, узнал как грамотно распределять приложение в файловой системе.

Приложение планирую развивать. Мне интересно добавить харение значений в базедынных, и для файлов конфигурации использовать какую-либо библиотеку по чтению ini-подобных файлов. Всё это для меня новое — поэтому считаю что велосипед сделал не зря.

Цель же обозначена — приобретение навыков, откуда еще узнать, что за полтора часа с кофе и разговорами программу не напишешь. А по делу, текстовых файлов в дропбоксе со списком программ «must have» и списком установленных пакетов на случай падения диска вполне достаточно, имхо.

Источник

Где лежат конфиги linux

Информация взята из [1].

Используется для сервера доменных имен (DNS). Размещается тут опционально, однако здесь нормальное месторасположение этой информации.

/etc/profile RHL,
FBSD
Системные настройки окружения — скрипт, выполняющийся при старте системы.
/dev/MAKEDEV RHL Файл /dev/MAKEDEV является скриптом, написанным системным администратором. Этот создает только файлы локальных устройств или ссылки на них, такие как нестандартные драйверы устройств.
/etc/aliases RHL,
FBSD
Псевдонимы имен пользователей, соответствующие никнеймам для e-mail.
/etc/bootptab Конфигурация демона сервера BOOTP.
/etc/crontab RHL,
FBSD
Список команд и времени их выполнения для запуска (назначенные задания для демона cron).
/etc/dhcpd.conf Файл конфигурации для демона сервера DHCP.
/etc/ethers Файл соответствия MAC-адресов IP-адресам (RARP mapping). См. man ethers(5).
/etc/exports RHL Файл, описывающий экспотированные файловые системы для сервисов NFS.
/etc/fdprm RHL Таблица параметров для floppy-диска. Описывает форматы различных floppy-дисков. Используется setfdprm.
/etc/filesystems RHL Может использоваться для установки последовательности filesystem probe, когда файловые системы монтируются с опцией auto. Параметр nodev указывается для файловых систем, которые не монтируются реально-локально, такие как proc, devpts и системы nfs.
/etc/fstab RHL,
FBSD
Список файловых систем, автоматически монтируемых при загрузке системы командой mount -a (может эквивалентно использоваться /etc/rc или другой файл, участвующий в автозапуске).
/etc/group RHL,
FBSD
Файл, описывающий группы пользователей (по аналогии /etc/passwd).
/etc/groups Может содержать пароли, которые позволяют пользователю присоединиться к группе.
/etc/gshadow RHL Используется для хранения пароля группы и информацию group administrator password для теневых паролей.
/etc/host.conf RHL,
FBSD,
ASPL
Указывает, каким образом должны разрешаться имена хостов. Список опций определителя (resolver) адресов.
/etc/hosts RHL,
FBSD,
ASPL
Список хостов для преобразования имен в IP-адреса (обычно нужно для хостов локальной сети, о которых не знает система DNS).
/etc/HOSTNAME Задает имя для рабочей станции. Используется для поддержки старых программ, которые сохраняют имя хоста в файле /etc/sysconfig/network.
/etc/inittab RHL Конфигурационный файл для процесса init, управляющий ходом уровней загрузки (startup run levels) — указывает скрипты, которые запускаются на каждом уровне.
/etc/inetd.conf FBSD Настраивает службы, которые обрабатываются демоном inetd.
/etc/issue RHL Вывод getty перед выдачей приглашения логина (login prompt). Описание приглашающего сообщения (welcoming message).
/etc/issue.net RHL Вывод для сетевых логинов (версия LINUX).
/etc/ld.so.conf RHL Конфигурационный файл ld.so, run time linker.
/etc/lilo.conf Конфигурационный файл для LILO (LInux LOader, начальный загрузчик операционных систем).
/etc/limits Ограничения пользовательских ресурсов, когда установлена система shadow passwords.
/etc/localtime RHL,
FBSD
В Debian здесь хранится линк на информацию о временнОй зоне системы. У меня на Red Hat 4 команда more /etc/localtime выдавала кракозябрики — походу это какой-то двоичный файл.
/etc/login.defs RHL Устанавливает пользовательские опции (user login features) на системах, где работает shadow passwords.
/etc/logrotate.conf RHL Настраивает ротацию логов (управление логами, их архивирование).
/etc/magic Конфигурационный файл для типов файлов. Содержит описания различных форматов файлов для командной оболочки. Почему-то на Red Hat 4 я такого файла не нашел, зато были похожие файлы /etc/mime-magic и /usr/share/magic
/etc/motd RHL,
FBSD
Сообщение дня (message of the day), автоматически выводящееся при успешном логине.
/etc/mtab RHL Список смонтированных файловых систем в настоящий момент времени. Настраивается скриптом загрузки и обновляется командой mount.
/etc/named.conf Используется серверами доменных имен, DNS (named).
/etc/networks FBSD Список имен и адресов сетей, как ваших собственных, так и других. Связывает доменные имена с адресами сетей. Используется командой route.
/etc/nologin, /sbin/nologin RHL,
FBSD
Если этот файл существует, то запрещен логин всех пользователей, кроме root. Обычно создается, когда система уходит в отключение.
/etc/nsswitch.conf RHL,
FBSD
Конфигурационный файл name service switch.
/etc/passwd RHL,
FBSD
База данных пользователей с полями, определяющий логин (username), реальное имя, домашний каталог (home directory), зашифрованный пароль (encrypted password, а точнее — хеш от него, вычисленный по известному алгоритму, например MD5) и другую информацию по каждому пользователю.
/etc/printcap RHL,
FBSD
Конфигурационный файл для принтеров.
/etc/profile RHL,
FBSD
Файл, выполняемый шеллом Bourne или C при логине пользователя или загрузке системы. Это позволяет администратору системы настроить глобальные установки по умолчанию для каждого пользователя отдельно.
/etc/protocols RHL,
FBSD,
ASPL
Описывает протоколы Internet DARPA, доступные из подсистемы TCP/IP. Привязывает номера ID протокола (порт) к именам протоколов.
/etc/rc или
/etc/rc.d или
/etc/rc?.d
RHL,
FBSD
Скрипты или директории со скриптами, которые запускаются при загрузке системы или когда меняется уровень процесса загрузки.
/etc/rc.d/rc0.d Содержит файлы, упраляющие уровнем загрузки 0 (run level 0). Обычно эти файлы являются мягкими файловыми ссылками (softlink files).
/etc/rc.d/rc1.d RHL Содержит файлы, упраляющие уровнем загрузки 1 (run level 1). Скрипты, начинающиеся с S нужны для старта (Start), а начинающиеся с K — для останова (Kill).
/etc/rc.d/rc.sysinit RHL Процесс init запускает этот файл при своем старте.
/etc/rc.d/init.d/inet Сценарий, конфигурирующий при начальной загрузке сетевой интерфейс.
/etc/resolv.conf RHL,
FBSD,
ASPL
Настраивает распознаватель имен (name resolver) — здесь указываются адрес (или адреса), сервера имен (DNS) и ваше доменное имя. Список имен серверов имен, IP-адресов (поле Name-server) и имен доменов, по которым можно найти удаленные системы (поле Search).
/etc/securetty RHL Идентифицирует защищенные терминалы (secure terminals), с которых администратору root можно войти в систему (log in).
/etc/services RHL,
FBSD,
ASPL
Перечисляет сетевые сервисы, которые система поддерживает.
/etc/shadow RHL Файл shadow password на системах, где установлено ПО shadow password software. Shadow passwords перемещают move файлы с зашифрованными паролями из /etc/passwd в /etc/shadow который может читать только root.
/etc/shadow.group Системы с установленным ПО shadow passwords могут иметь этот файл.
/etc/shells RHL,
FBSD
Список доверяемых шеллов (trusted shells). Команда chsh позволяет пользователям изменить свой логин-шеллна шелл, который перечислен только в этом файле.
/etc/skel/.profile Может использоваться администратором для установки переменной окружения редактора (editor environment variable) для того, чтобы сделать некоторые редакторы дружественными для новых пользователей.
/etc/sudoers RHL Список пользователей со специальными привилегиями для команд, которые они могут выполнять.
/etc/smb.conf или
/etc/samba/smb.conf
RHL Конфиг для настроек сервисов Samba (сетевая стистема обмена файлами Windows).
/etc/sysconfig/amd Используется для конфигурирования демона автомонтирования (auto mount daemon).
/etc/sysconfig/clock RHL Используется для конфигурирования системных часов (system clock) на универсальное (Universal) или локальное время (local time) и установки некоторых других параметров часов.
/etc/sysconfig/i18n RHL Управляет настройками системного шрифта.
/etc/sysconfig/init RHL Этот файл используется для установки некоторых характеристик терминала и переменных окружения (environment variables).
/etc/sysconfig/keyboard RHL Используется для конфигурирования клавиатуры.
/etc/sysconfig/mouse RHL Используется для конфигурирования мыши.
/etc/sysconfig/pcmcia RHL Используется для конфигурирования сетевых карт pcmcia.
/etc/rc.d/routed,
/usr/src/etc/rc.d/routed
FBSD Настраивает политики динамической маршрутизации.
/etc/syslog.conf RHL,
FBSD
Конфигурационный файл для демона syslogd.
/etc/termcap RHL,
FBSD
База данных совместимости терминалов. Описывает управляющие ESC-последовательности (escape sequences), поддерживаемые различными терминалами. См. man-справку по terminfo, termcap, curs_termcap.
/etc/terminfo Детализирует ввод/вывод терминала (terminal I/O).
/etc/usertty Этот файл используется для наложения специальных ограничений доступа для пользователей.
$HOME/.bashrc RHL Алиасы пользователей, модификаторы путей, функции.
$HOME/.bash_profile RHL Содержимое пользовательского окружения (users environment stuff) и автозапускаемые программы.
$HOME/.bash_logout RHL Пользовательские действия, которые выполняются при выходе из системы (logout).
$HOME/.hushlogin Когда этот файл существует в домашней папке пользователя, то запрещена проверка почты, печать времени последнего логина и «сообщения дня» в момент, когда пользователь входит в систему.
$HOME/.inputrc Содержит клавиатурные привязки (keybindings) и кое-что еще.
$HOME/Xrootenv.0 Информация о сети и окружении.
/proc/cpuinfo RHL Информация о типе процессора, о его производителе и быстродействии.
/proc/devices RHL Список устройств, сконфигурированных в ядре, работающем в настоящий момент.
/proc/dma RHL Показывает, какие каналы DMA используются в настоящий момент.
/proc/filesystems RHL Файловые системы, которые сконфигурированы в ядре. Используется для детектирования файловых систем, если файл /etc/filesystems не существует.
/proc/ioports RHL Показывает, какие порты ввода/вывода (I/O ports) находятся в использовании в настоящий момент.
/proc/interrupts RHL Показывает, какие прерывания сейчас используются и насколько часто.
/proc/kcore RHL Образ физической памяти системы. Команда more /proc/kcore выдает сообщение «Operation not permitted».
/proc/kmsg RHL Вывод сообщений ядра, которые перенаправляются в syslog.
/proc/ksyms или
/proc/kallsyms
RHL Таблица символов ядра (у меня на Red Hat команда more /proc/ksyms почему-то выдавала No such file or directory).
/proc/loadavg RHL Статистика по средней загруженности системы.
/proc/meminfo RHL Информация по использованию памяти — физической и файла подкачки.
/proc/modules RHL Информация о том, какие модули ядра загружены в память в настоящий момент.
/proc/mounts RHL Содержит информацию о файловых системах, смонтированных в настоящее время. Информация сходна с файлом /etc/mtab.
/proc/net RHL Папка, которая содержит статусную информацию о сетевых протоколах. Каждый файл в папке соответствует определенному протоколу (arp, tcp и т. д.).
/proc/self RHL Символическая ссылка на директорию процессов программ, указывающая на /proc. Когда 2 процесса смотрят на proc, они получают разные ссылки.
/proc/stat RHL Разнообразная статистика о системе, например количество ошибок страниц (page faults) с момента начала работы системы.
/proc/uptime RHL Время нахождения системы в рабочем состоянии.
/proc/version RHL Версия ядра.
/tmp/fvwmrca01339 Задает FVWM-M4. Содержит информацию о сети, подсистеме Xwindows и другую информацию о настройках.
/usr/lib/zoneinfo или
/usr/share/zoneinfo
RHL,
FBSD
Файлы данных временнОй зоны, которые сохраняет здесь система Debian.
/var/log/lastlog RHL,
FBSD
Используется finger чтобы сказать пользователю о времени последнего входа в систему.
/var/log/wtmp RHL,
FBSD
Двоичная информация о пользователях, вошедших в систему. Команда last использует эту информацию.
/var/run/utmp RHL,
FBSD
Содержит информацию о пользователях, залогиненных в системе в настоящий момент. Команды who и w используют этот файл.
/var/named/root.hints
/var/named/* FBSD Файлы, используемые сревером доменных имен (DNS). Размещение тут опционально, однако здесь нормальное месторасположение этой информации.
/var/log/btmp Используется для сохранения информации о неудачных логинах. Этот файл должен быть одинажды создан вручную, чтобы информация начала накапливаться.
/var/log/lastlog RHL,
FBSD
Содержит информацию о последнем времени успешного логина в систему. Работает с lastb(1).
/var/log/maillog RHL,
FBSD
Нормальный системный файл почтового лога.
/var/log/messages RHL,
FBSD
Основной файл лога системных сообщений.
/var/log/secure RHL Системное отслеживание входов пользователя в систему. Периодически проверяйте этот файл.
/var/spool/mail RHL Место, где обычно хранятся почтовые ящики. Каждому пользователю соответствует свой файл (например, почта root хранится с файле /var/spool/mail/root). Почту также можно посмотреть командой mail.
/etc/ftpusers RHL,
FBSD
По умолчанию путь и имя для файла ftpusers. В этом файле указываются имена пользователей, которым запрещен вход в систему через ftp. Среди таких пользователей обычно root, daemon, bin, uucp и news.
Читайте также:  Как снести windows без прав администратора

Примечание:
RHL == Red Hat Linux 4
FBSD == FreeBSD 6.3
ASPL == ASPLinux 10

Источник

Оцените статью