[CMake] Create user and group with CPack

Eric Noulard eric.noulard at gmail.com
Thu Jul 20 06:35:06 EDT 2017


2017-07-20 12:01 GMT+02:00 Kristian <kristianonline28 at gmail.com>:

> Hi,
>
> thank you for your reply. Yes, I add the script with
> > set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/
> postinstall")
>
> and it basically works, because this file is changing a settings file
> without any problems. Only the add of the group and the user does not
> work, somehow.
>
> This is the part in the postinstall script, which should add group and
> user:
>
> =====
> WEB_USER=web1
> WEB_GROUP=web1
>
> # create group
> groupadd "${WEB_GROUP}" --force --system
> # retrieve group id
> WEB_GROUP_ID="$(getent group '$WEB_GROUP' | cut -d: -f3)"
> echo "Group '${WEB_GROUP}' added with id '${WEB_GROUP_ID}'"
> # create user
> useradd "$WEB_USER" -g "${WEB_GROUP_ID}" -M -r -s /sbin/nologin -c
> "Web user - created during the installation."
> echo "User '${WEB_USER}' added."
> =====
>
> And this is, what is being printed during installation:
> =====
> Group 'web1' added with id ''
> useradd: group '' does not exist
> User 'web1' added.
> =====
>

What is the shebang your ar using at the top of this script?

this syntax:
WEB_GROUP_ID="$(getent group '$WEB_GROUP' | cut -d: -f3)"

may be bash only.

not sure it makes a difference but you could try:

WEB_GROUP_ID="$(getent group '${WEB_GROUP}' | cut -d: -f3)"

note that getting the numeric group id seems unecessary.

useradd "$WEB_USER" -g "${WEB_GROUP}" -M -r -s /sbin/nologin -c

should work, useradd should work equally well with numeric or symbolic id
of a group.


--
Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20170720/ed9068b6/attachment.html>


More information about the CMake mailing list