LINUX.ORG.RU

Настройки приложения, общие для всех пользователей


0

0

Необходимо, хранить настройки приложения, общие для всех пользователей, в одном месте. Какое место для этого лучше выбрать? Я не знаком с Linux, поэтому боюсь, что если использовать для этого директорию установки приложения, то не будет прав записи в этот каталог. Существует ли каталог, аналогичный виндовскому All Users?

И еще, просвятите плз, где находится в Linux рабочий каталог (папка), те каталог, относительно которого берутся относительные пути в приложении. Это папка, где находится исполняемый файл, или каталог запуска приложения?

anonymous

В /etc правильнее всего.

krum
()

если не указанна директория конфигов то следущие варианты могут быть включенны в поиске:
1. /etc/<progname>
2. /opt/<progname>/etc 
3. /usr/local/<progname>/etc

так же использовать при запуске опцию -c <path_to_config>
а "директория конфигов" указывается при "инсталяции"
если это autotools'ы то -sysconfdir если какие другие утилиты то
соответственно читать документацию по ним.

fura13 ★★★
()

т е я могу завести папку для приложения etc/appname и туда писать безпрепятственно, так? И еще, если приложение запускается, скажем, из каталога /etc таким образом: /etc/test/test/exe, то рабочим каталогом будет etc, ведь так? или test? Под рабочим каталогом я понимаю то, что под виндой зовется рабочей папкой, те папка, относ. которой расчитываются относ. пути в приложении. Сам только под win32 программил, так что с Linux все плохо... (в смысле у меня)

anonymous
()
Ответ на: комментарий от anonymous

не не так

"рабочий каталог" в *NIX'ах это $HOME к примеру для ssh это /home/fura/.ssh, но !основные! настройки ssh хранит в /etc/ssh

причем /etc только для настроек и обычно редко изменяемых и для изменения требующих рутовых прав.

для какихто рабочих файлов обычно используется $HOME

> И еще, если приложение запускается, скажем, из каталога /etc

нет приложение запускается всеравно откуда : текущий каталог для них не должен ничего значить ... поиск "запускаемых" файлов производится $PATH .. про конфиги понятно? а рабочий каталог либо /home/user/.progname либо /tmp/progname взависимости от того как долго требуется хранить "рабочее" файло

fura13 ★★★
()
Ответ на: комментарий от fura13

а, да $PATH, $HOME это переменные окружения в shell'e

и еще лучше почитать что нить типа http://ru.gentoo-wiki.com/Структура_файловой_системы

лучше ссылок чет не могу найти (спать охота) гугл в помощь :)

fura13 ★★★
()
Ответ на: комментарий от anonymous

/etc/app/self.conf - это если на всю сеть
~$HOME/.self.conf - чисто на одного юзера
~$HOME/app/self.conf - тож самое
прочее от дисциплины монтирования
---
/opt придумали дяди, видимо из MS, которые про nfs слышали в страшном сне




MKuznetsov ★★★★★
()

А как быть, если программа постоянно генерирует данные, которые должен видеть ЛЮБОЙ из пользователей? Где их хранить?

anonymous
()

>И еще, просвятите плз, где находится в Linux рабочий каталог (папка), те каталог, относительно которого берутся относительные пути в приложении. Это папка, где находится исполняемый файл, или каталог запуска приложения?

См. переменную окружения PWD. Учти, что рабочий каталог для процесса наследуется от родителя.

Sphinx ★★☆☆
()
Ответ на: комментарий от anonymous

>А как быть, если программа постоянно генерирует данные, которые должен видеть ЛЮБОЙ из пользователей? Где их хранить?

если программа ставится в /opt/<progname>, то оптимальнее туда же и складировать все данные.
если она ставится в общее дерево (бинарники в /usr/bin или в /usr/local/bin), то /var/<progname>/, по крайней мере, так предписывает FHS.

PS если каждый пользователь должен иметь доступ, нужно поставить правильные права на каталог (т.е. не забыть это сделать во время инсталяции).

generatorglukoff ★★
()
Ответ на: комментарий от anonymous

Что за данные он генерирует? Может их проще в базу данных запишнуть?

OlegSL
()

Ну и стоит добавить, что в /etc принято хранить неизменяемые самой программой настройки. Чтобы не ломаться в случае ro /.

Если же программа сама меняет настройки, то они должны лежать где-то в /var

execve
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.