Мне дали частично полную спецификацию RPM для сервиса, который мы пишем. Он позволяет создавать необходимые каталоги, копировать файлы, устанавливать разрешения и т. Д., Но не создает системную учетную запись, под которой будет работать служба. Мне сказали, что RPM лучше всего позаботиться об этом, поэтому я добавил
Requires(pre): /usr/sbin/useradd
%pre
useradd -r -d /path/to/program -s /bin/false myservice
Это позволяет создать учетную запись пользователя (и связанную группу), поэтому позже, когда он пытается установить права доступа / права на файлы службы, это также успешно выполняется.
Моя текущая проблема заключается в следующем: а) если учетная запись пользователя уже существует, установка RPM завершится неудачно из-за useradd
сбоя (поскольку пользователь уже существует); и б) я не знаю, как rpm -e myservice
также удалить соответствующего пользователя и группу.
источник
Ответы:
Я на самом деле решил это самостоятельно, посмотрев на другие спецификации RPM, которые делали подобные вещи. Если вы просто хотите добавить пользователя (условно), воспользуйтесь ссылкой Игнасио. Я сделал это:
Это гарантирует, что RPM «очищается после себя», но все же предоставляет возможность установки, даже если учетная запись уже существует.
источник
Любой из двух предыдущих ответов готов к работе, так как эти методы удаляют пользователя, если пакет обновляется. Yum устанавливает новый пакет, а затем удаляет старый пакет. Это оставит вас без пользователя. Не круто!
Используйте этот метод вместо:
источник
Ответ от Coderer хороший, но вторая предварительная команда выдает ошибку на Centos 7. Группу необходимо указать.
Я также добавил перенаправление в / dev / null, чтобы игнорировать нежелательные эхо.
источник