From 51c95256d3dd646d656540db6e2f96e61fa1a074 Mon Sep 17 00:00:00 2001
From: Thiago Abdo <tja14@inf.ufpr.br>
Date: Tue, 19 Jan 2016 09:16:07 -0200
Subject: [PATCH] [add user] Adds remove group function, not tested

Signed-off-by: Thiago Abdo <tja14@inf.ufpr.br>
---
 hdd/adduser.sh | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/hdd/adduser.sh b/hdd/adduser.sh
index 7a4042b..4b103c3 100755
--- a/hdd/adduser.sh
+++ b/hdd/adduser.sh
@@ -93,6 +93,24 @@ add (){
     fi
 }
 
+remove_group(){
+    local group=$1
+    #get user that is direct from this group
+    local username=$( echo $group | cut -d':' -f1);
+    local userDetail=$( cat /etc/passwd | cut -d':' -f1-3 | grep -e "^$username:")
+
+    #remove user that is from this group
+    remove_user "$userDetail"
+
+    #remove group from groups
+    local temp=$(mktemp)
+    sed "/^$group$/d" /etc/group > $temp
+    cp $temp /etc/group
+    chown root:root /etc/group
+    chmod 644 /etc/group
+    rm $temp
+}
+
 remove_user(){
 
     userDetail=$1
@@ -178,27 +196,25 @@ fi
 
 checkName=$( cat /etc/passwd | cut -d':' -f1-3 | grep -e "^$username:" )
 if [ -z "$checkName" ]; then
-    #remove "$checkName"
     remove_user "$checkName"
     echo $0": encontrei outro usuario local com o mesmo nome, devo remove-lo"
 fi
 
 checkID=$( cat /etc/passwd | cut -d':' -f1-3 | grep -e ":$uID$" )
 if [ -z "$checkID" ]; then
-    #remove "$checkID"
     remove_user "$checkID"
     echo $0": encontrei outro usuario local com o mesmo id, devo remove-lo"
 fi
 
 checkGID=$( cat /etc/group | grep -e ":$gID:" )
 if [ -z "$checkGID" ]; then
-    #remove "$checkGID"
+    remove_group "$checkGID"
     echo $0": encontrei outro usuario local com o mesmo id de grupo, devo remove-lo"
 fi
 
 checkGName=$( cat /etc/group | grep -e "^$groupname:" )
 if [ -z "$checkGName" ]; then
-    #remove "$checkGName"
+    remove_group "$checkGName"
     echo $0": encontrei outro usuario local com o mesmo nome de grupo, devo remove-lo"
 fi
 
-- 
GitLab