Сценарии Bash и домашняя страница пользователя из учетной записи root (Linux)

Я пишу сценарий установки на bash для приложения в Linux.

Этот сценарий копирует некоторые файлы в / usr / bin и / usr / share, поэтому он должен выполняться пользователем root, кроме того, он создает скрытый каталог в каталоге $ HOME для файлов конфигурации.

Вот проблема: если обычный пользователь хочет установить программу, он должен быть root. Но если он root, каталог $ HOME будет / root / вместо / home / username.

Ответов (2)

Решение

... и, кроме того, если UserA устанавливает программное обеспечение, но UserB запускает его, у UserB не будет скрытого каталога /home/UserB . Кроме того, скрытый каталог /home/UserA будет принадлежать пользователю root, а не пользователю A.

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

Другой возможный вариант - не устанавливать в системные каталоги; одно возможное альтернативное местоположение /usr/local . Однако даже для этого могут потребоваться привилегии root. Подумайте, можно ли его установить в других местах и ​​как разместить материалы.

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

Заключительный момент (на данный момент): если вы используете sudo, он не изменяет значение $ HOME, даже если вы получаете права root. Однако требовать, чтобы у всех, кто использует ваше приложение, были sudo привилегии, тоже нехорошо.

Вы должны использовать $HOME ? Может быть, вы могли бы запросить имя пользователя и ~$username вместо этого установить ?