LINUX.ORG.RU

Сборка DEB-пакета собственного приложения.

 ,


0

1

Добрый день, коллеги. Нужна помощь в определении пользователя, запустившего установку. Сборка DEB-пакета. После установки (postinst) необходимо ряд файлов переместить в домашнюю директорию пользователя. Если установка пакета происходит из-под sudo (консоль) пользователя, запустившего установку определяю через $SUDO_USER. Если установка запущена через графический установщик (клик на DEB-пакете), далее ввод пароля (например, Synaptic) система уже считает пользователем root. Вопрос, как отследить пользователя в postinst DEB-пакета, запустившего графическую установку.



Последнее исправление: Alexander-HOY (всего исправлений: 1)

Ответ на: комментарий от Alexander-HOY

Эм… при каждом запуске ПО проверяет, есть ли в хомяке нужные файлы. Если нет, то копирует из эталона. Так всё ПО поступает, какая специфика мешает вам так же сделать?

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Alexander-HOY

Штатных способов отслеживать подобный бред нет. В теории можно парсить вывод ps для определения, какой пользователь запустил.

Но правильнее — согласовать изменение ТЗ, потому что в норме такое должно настраиваться при запуске, а не при установке.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Alexander-HOY

Пропишите, что нужные файлы лежать в /opt/programmname/start/ и являются частью ПО, пусть проверяют наличие. В документации опишите, что после начала работы этот эталон копируется, чтобы быть изменяемым в процессе работы пользователем.

Vsevolod-linuxoid ★★★★★
()

Как должно вести себя ПО, если в системе несколько пользователей? Поэтому все нормальные программы копируют/создают в хомяке файлы при первом запуске (при их отсутствии).

Если очень хочется костылей, можешь сделать ls /home и скопировать во все хомяки. Или распарсить /etc/passwd и найти все пути к хомякам там.

Но не надо так делать, пожалуйста. Скорректируй ТЗ, чтобы программа создавала файлы в хомяке при первом запуске.

KivApple ★★★★★
()

Выше правильно написали что это дичь, даже если по ТЗ. Тем не менее сделать можно: смотрите в переменной окружения $LOGNAME - это и будет логин текущего пользователя.

alex0x08 ★★★
()
Ответ на: комментарий от Alexander-HOY

ну а вы на что?

Это же ваша задача объяснить клиенту, что его пожелания невыполнимы. apt не может работать из под юзера, потому что он не сможет прописать пакет в базу данных.

max_lapshin ★★★★★
()

как отследить пользователя… …запустившего графическую установку

Взгляд стеклянный и слюна в уголке рта подтекает?

Dog ★★★
()