diff --git a/hdd/adduser.sh b/hdd/adduser.sh index 7a4042bfea66c710abd2dec14ae9003443ed9271..4b103c370da233ea9472844961300910ffc45027 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