Можно ли где-то записать файлы конфигурации из моей программы без прав root?

Можно ли где-то записать файлы конфигурации из моей программы без прав root?

Я пишу небольшую утилиту, и мне нужно где-то разместить файлы конфигурации. Если присмотреться, то это, похоже, /etcканоническое расположение в Linux. Но я столкнулся с проблемой, что этот каталог, похоже, требует доступа root для записи по умолчанию.

Есть ли место, куда можно записать без необходимости вызывать мою программу с помощью sudo? Например, homebrewна Mac, кажется, можно как-то записать /usr/local/binбез прав root.

Я знаю, что могу что-то добавить /home, но я пытаюсь сделать все «правильно» с точки зрения того, где должны храниться файлы в Linux.

решение1

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

Либо он принадлежит пользователю, и, следовательно, его конфигурация хранится в домашнем каталоге пользователя, либо он установлен в любом месте системы (например /usr/bin, /usr/local/bin, /opt/appname), а затем его конфигурация снова сохраняется в каком-либо месте системы (например /etc, , /usr/local/etcили /opt/appname/etc).

решение2

Вам следует использовать подкаталог, возможно скрытый, специфичный для вашего приложения, например .myApp. Он также может содержать журналы версий и установки. Это значительно упрощает очистку и т. д.

Если конфигурация общая для всех пользователей, вы можете сделать одноразовый sudo mkdir в "общем пространстве" и предоставить соответствующие разрешения в этом каталоге. Не имеет значения, что уровни выше не могут быть записаны.

Если ваша конфигурация рассчитана на пользователя, ваше приложение создается .myAppв папке /home/username пользователя при установке или первом использовании.

Для Linux существует официальный стандарт иерархии файловой системы.

Связанный контент