From abb9f44b87cfed5fa14be9471b536fc27939d920 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Mon, 23 Jan 2017 00:48:56 +0100 Subject: [PATCH] Nouveaux helpers ynh_system_user_create et ynh_system_user_delete MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Helpers pour créer un utilisateur système et pour le supprimer. La création d'user système permettra de créer des users dédiés aux applications. Cf YEP 3.4 --- data/helpers.d/user | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/data/helpers.d/user b/data/helpers.d/user index 5ee6acd68..0bb0736af 100644 --- a/data/helpers.d/user +++ b/data/helpers.d/user @@ -38,3 +38,34 @@ ynh_user_list() { ynh_system_user_exists() { getent passwd "$1" &>/dev/null } + +# Create a system user +# +# usage: ynh_system_user_create user_name [home_dir] +# | arg: user_name - Name of the system user that will be create +# | arg: home_dir - Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home +ynh_system_user_create () { + if ! ynh_system_user_exists "$1" # Check if the user exists on the system + then # If the user doesn't exist + if [ $# -ge 2 ]; then # If a home dir is mentioned + user_home_dir="-d $2" + else + user_home_dir="--no-create-home" + fi + sudo useradd $user_home_dir --system --user-group $1 --shell /usr/sbin/nologin || ynh_die "Unable to create $1 system account" + fi +} + +# Delete a system user +# +# usage: ynh_system_user_delete user_name +# | arg: user_name - Name of the system user that will be create +ynh_system_user_delete () { + if ynh_system_user_exists "$1" # Check if the user exists on the system + then + echo "Remove the user $1" >&2 + sudo userdel $1 + else + echo "The user $1 was not found" >&2 + fi +}