Динамически получить имя пользователя в скрипте Postinst пакета.deb
Я написал скрипт Postinst для изменения владельца и прав доступа к файлу:
chown -R $(whoami) ~/Desktop/my_file.desktop
chmod 777 ~/Desktop/my_file.desktop
но после установки ничего не происходит.
Я действительно не понимаю, какая часть сценария неверна. Подскажите пожалуйста, как динамически получить имя пользователя в скрипте Postinst?
1 ответ
Установка пакета запускается как root
безоговорочно. Нет концепции вызывающего пользователя; действительно, установка пакета может произойти, например, до того, как на коробке появятся учетные записи пользователей.
Чрезвычайно неясно, чего вы на самом деле надеетесь достичь, но, похоже, ваш пакет должен просто установить скрипт, который затем выполняет задачу, когда пользователь ее запускает. Это также удобно для создания файла, который уже принадлежит текущему пользователю, без каких-либо chown
обман.
Даже если пользователь существует, нет гарантии, что у него есть Desktop
каталог в их домашнем каталоге, или что они в настоящее время, или когда-либо, вошли в систему с помощью графического интерфейса.
Наконец, все, что вы пытаетесь сделать, chmod 777
неправильно и опасно. Вы абсолютно не должны назначать права на запись для всех, ни для чего, никогда.
(Хорошо, так что есть два или три непонятных сценария, связанных с системным администрированием, где это действительно необходимо и полезно; в противном случае это, вероятно, должно быть технически невозможно в первую очередь.)