diff --git a/hdd/adduser.sh b/hdd/adduser.sh
index 023f75459bc1c5d33d56fd20ef3f55afa6a43a58..b5abdbd44d2d404ad310be2578e05273e734de6d 100755
--- a/hdd/adduser.sh
+++ b/hdd/adduser.sh
@@ -55,59 +55,77 @@ shadow=$3
 globalFlag=$4
 
 username=$( echo $passwd | cut -d':' -f1 )
-
 uID=$( echo $passwd | cut -d':' -f3 )
 globalID=$( echo $uID | grep -e "^3....$" )
 localID=$( echo $uID | grep -e "^2....$" -e "^1....$" )
 
+groupname=$( echo $group | cut -d':' -f1 )
+gID=$( echo $group | cut -d':' -f3 )
+globalGID=$( echo $gID | grep -e "^3....$" )
+localGID=$( echo $gID | grep -e "^2....$" -e "^1....$" )
+
 #globalUser
-#if not(globalFlag) && globalID
-if [ "$globalFlag" != "global" ] && [ -n "$globalID" ]; then
+#if not(globalFlag) && ( globalID || globalGID )
+if [ "$globalFlag" != "global" ] && ( [ -n "$globalID" ] || [ -n "$globalGID" ] ); then
     exit 21
 fi
 
-#if globalFlag && not(globalID)
-if [ "$globalFlag" = "global" ] && [ -z "$globalID" ]; then
+#if globalFlag && ( not(globalID) || not(globalGID) )
+if [ "$globalFlag" = "global" ] && ( [ -z "$globalID" ] || [ -z "$globalGID" ] ); then
     exit 24
 fi
 
-#if globalFlag && globalID
-if [ "$globalFlag" = "global" ] && [ -n "$globalID" ]; then
+#if globalFlag && globalID && globalGID
+if [ "$globalFlag" = "global" ] && [ -n "$globalID" ] && [ -n "$globalGID" ]; then
     #add user global
     echo $0": Usuário global adicionado corretamente"
     exit 0
 fi
 
-#Uma vez que não possui id global, se nao possuir id local esta fora do range
-if [ -z "$localID" ]; then
+#Uma vez que não possui uid ou gid global, se nao possuir id local esta fora do range
+if [ -z "$localID" ] || [ -z "$localGID" ]; then
     echo $0": Usuario fora do range do local accounts"
     exit 32
 fi
 
 #See if exist the username that we are tryng to add with non local ID
 checkNotLocalName=$( cat /etc/passwd | cut -d':' -f1,3 | grep -v -e ":2....$" -e ":1....$" | grep -e "^$username:" )
-
 if [ -z "$checkNotLocalName" ]; then
     echo $0": Usuario não local com mesmo username"
     exit 22
 fi
 
+#See if exists the group name that we are trying to add with non local GID
+checkNotLocalGroupName=$( cat /etc/group | grep -v -e ":2....:" -e ":1....:" | grep -e "^$groupname:" )
+if [ -z "$checkNotLocalGroupName" ]; then
+    echo $0": Usuario não local com mesmo group name"
+    exit 22
+fi
 
 checkName=$( cat /etc/passwd | cut -d':' -f1-3 | grep -e "^$username:" )
-
 if [ -z "$checkName" ]; then
     #remove "$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"
     echo $0": encontrei outro usuario local com o mesmo id, devo remove-lo"
 fi
 
-#adicionar verificacao de nome e id para group?
+checkGName=$( cat /etc/group | grep -e "^$groupname:" )
+if [ -z "$checkGName" ]; then
+    #remove "$checkGName"
+    echo $0": encontrei outro usuario local com o mesmo nome de grupo, devo remove-lo"
+fi
+
+checkGID=$( cat /etc/group | grep -e ":$gID:" )
+if [ -z "$checkGID" ]; then
+    #remove "$checkGID"
+    echo $0": encontrei outro usuario local com o mesmo id de grupo, devo remove-lo"
+fi
+
 
 #add local user
 echo $0": Usuario local adicionado corretamente"