Вопрос или проблема
Я установил пакет (согласно инструкциям), но заметил, что он не установил бинарный файл в директорию /usr/bin
, а вместо этого в пользовательскую область.
Как лучше всего предоставить другим пользователям доступ к этому пути, не предоставляя им доступ sudo
?
Добавить путь в их файл .profile
?
Заранее спасибо за любые ответы.
Очень признателен 🙂
Не забудьте сделать резервную копию папки приложения перед изменениями, и что вам нужно перезагрузить, чтобы новые настройки $PATH
вступили в силу.
Я написал этот ответ на основе предоставленной информации, и он может сработать, а может и нет.
Вы можете переместить эту установку в директорию /opt/
, а затем добавить ее в переменную path. Далее я пишу, предполагая, что все находится в одной папке в вашей директории /home/user-name
и что пользовательские данные записываются в поддиректорию ~/.config/
.
sudo mv /home/"$USER"/<application-folder> /opt/
sudo chown -R root:root /opt/<application-folder>
Когда вы переместили всю вещь и изменили право собственности, добавьте PATH="/opt/<application-folder>:$PATH"
в файл ~/.profile
и то же самое для каждого пользователя, которому разрешено использовать это приложение. Сделайте это следующим образом:
# в случае вашего собственного .profile
echo "PATH="/opt/<application-folder>:$PATH"" >> ~/.profile
# в случае профиля других пользователей
echo "PATH="/opt/<application-folder>:$PATH"" | sudo tee -a /home/<user-name>/.profile
Ответ или решение
Предоставление доступа к программам, установленным в пользовательской области, может быть выполнено с помощью нескольких шагов, которые обеспечат безопасность системных настроек и избавят пользователей от необходимости использовать привилегии суперпользователя. Это особенно важно, если установленные программы находятся в пользовательской директории, такой как домашняя папка пользователя, а не в общем системном каталоге, таком как /usr/bin.
Шаг 1: Перемещение программы в общедоступный каталог
Поскольку ваша программа изначально была установлена в домашнюю директорию пользователя, оптимальным решением будет переместить её в более общедоступный, но всё равно защищённый каталог, такой как /opt. Это сделает программное обеспечение доступным для всех пользователей, сохраняя при этом его изоляцию от критически важных системных файлов.
sudo mv /home/"$USER"/<имя-папки-программы> /opt/
sudo chown -R root:root /opt/<имя-папки-программы>
Шаг 2: Настройка переменной среды PATH
После перемещения программы необходимо обновить системный путь для пользователя, добавив к нему новый каталог. Это можно сделать, добавив изменение в файл .profile кажого пользователя, который должен иметь доступ к программам.
Для изменения PATH выполняйте следующую команду для каждого необходимого пользователя:
# в .profile вашего пользователя
echo "PATH=\"/opt/<имя-папки-программы>:\$PATH\"" >> ~/.profile
# в .profile другого пользователя
echo "PATH=\"/opt/<имя-папки-программы>:\$PATH\"" | sudo tee -a /home/<имя-другого-пользователя>/.profile
Шаг 3: Применение изменений
После изменения файла .profile пользователи должны выйти из системы и войти снова для применения изменений. Для проверки, что настройки PATH успешно применены, выполните команду echo $PATH
после входа в систему и убедитесь, что путь /opt/<имя-папки-программы> теперь присутствует в списке.
Рекомендации по безопасному развертыванию
-
Резервное копирование: Всегда делайте резервную копию программы перед её перемещением. Это позволит избежать потери данных в случае ошибки.
-
Тестирование: После изменений убедитесь, что программа работает корректно для всех пользователей, направив их наставления по тому, как использовать новый путь.
-
Ограничение прав доступа: Убедитесь, что к каталогу /opt/<имя-папки-программы> имеют доступ только те пользователи, которым это действительно необходимо.
Следование этим шагам обеспечит безопасный и эффективный доступ к установленным программам, таким образом, чтобы они были доступны для необходимых пользователей, минимизируя риски и сохраняя управляемость системной конфигурации.