Хранение данных приложений, не относящихся к пользователю, в Mac & Linux - разрешения - PullRequest
6 голосов
/ 16 февраля 2010

Я недавно отправил этот вопрос о том, где хранить данные приложений, не относящихся к пользователю, в Linux.

Как видите, я намеревался использовать «/ Library / Application Support» на Mac и, возможно, «/ var / lib» или «/ usr / share» в Linux.

В существующем приложении (в настоящее время только для Windows) мы используем «\ ProgramData» в Vista и Windows 7 и «\ Documents and Settings \ All Users» в Windows XP (оба получены с помощью System.getenv («ALLUSERSPROFILE»), который не работает на Mac или Linux).

Проблема, с которой я сталкиваюсь в местоположениях Mac и Linux (в отличие от Windows), заключается в том, что они недоступны пользователям без полномочий root / admin, что лишает их цели.

Какая лучшая практика в этом случае? Мы могли бы просто сохранить данные приложения в домашнем каталоге пользователя. Я бы на самом деле не был бы против этого, так как кажется разумным, чтобы приложение выглядело абсолютно «новым», когда новый пользователь пытается его использовать. Основная проблема, которую это дает нам, заключается в том, что каждый пользователь должен будет ввести серийный номер, чтобы активировать приложение (информация об активации является частью «данных приложения», которые мы должны хранить). Это не совсем идеально.

Тем не менее, если нет реальной альтернативы, то я полагаю, что это должно будет сделать.

Ответы [ 2 ]

4 голосов
/ 16 февраля 2010

Что вы подразумеваете под не относящимися к пользователю данными приложения ?

  • Ресурсы только для чтения, необходимые приложению, такие как строки локализации или значки кнопок:

    • на Mac они хранятся в самом комплекте приложений, в подпапке Resources
    • в Linux, они могут храниться рядом с двоичным файлом приложения, например, в /opt/<app>/etc.

  • Свойства чтения / записи, такие как серийный номер:

    • Вы можете рассматривать эту информацию как пользовательские данные приложения, поэтому она должна находиться где-то в $HOME каталоге
    • вы можете рассматривать эту информацию как данные компьютерного приложения, и в этом случае ее настройка должна выполняться в процессе установки программного обеспечения, то есть с правами администратора.
1 голос
/ 16 февраля 2010

/ Users / Shared / доступно для записи всем.Тем не менее, , если вам нужна поддержка компьютерных лицензий , лучшее место для серийных номеров, ИМХО, действительно / Library / Application Support.Вам придется один раз воспользоваться услугами авторизации, чтобы запросить пароль администратора и сохранить там серийный номер.Если пользователь не может ввести пароль администратора, сохраните серийный номер в ~ / Library / Application Support.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...