diff --git a/hdd/adduser.sh b/hdd/adduser.sh
old mode 100644
new mode 100755
index edd8384ea40265321b2c04e1d6f4b9c5f89b4a8c..23985280f5be1182e74a51f8480472a54caf2b88
--- a/hdd/adduser.sh
+++ b/hdd/adduser.sh
@@ -17,44 +17,97 @@
 
 
 # 21 Tentar adicionar usuario no range do servidor sem flag
-# 22 Tentar sobreescrever usuario de servidor
+# 22 Tentar sobreescrever usuario global ou do sistema
 # 23 Usuario de servidor ja existe
+# 24 Tenta adicionar usuario com a flag de servidor mas fora da range
 
 # 31 Usuario local ja existe
+# 32 Usuario local fora do range do local_accounts
 
 # 41 Usuario de pendrive nao valido
 
 
 
 add (){
+    #checa se nao exite usuario com mesmo id
+    #checa se nao existe usuario com mesmo nome
+
+    #checa se nao existe grupo com mesmo id
+    #checa se nao existe grupo com mesmo nome
+
+    #adiciona no passwd
+
+    #cria home
+    #copia home-exemplo
+    #chown na home inteira
 }
 
+
 #This script can only be executed by a root/sudoer user
-#if [ ("$(usr/bin/id -r -u 0)" != "0") ]; then
-    #echo $0 ": Você não possue as permissoes necessárias para realizar essa operação"
-    #exit ?
-#fi
-
-#if server_user
-    #if flag_server
-        #add
-        #exit 0
-    #fi
-#fi
-
-#if local_user
-    #if unique
-        #add
-        #exit 0
-    #fi
-#fi
-
-#if pen_user
-    #if is valid(range de id certo)
-        #if !unique
-            #removes other
-        #fi
-        #add
-    #exit 0
-#fi
+if [ ("$(usr/bin/id -r -u 0)" != "0") ]; then
+    echo $0": Você não possue as permissoes necessárias para realizar essa operação"
+    exit ?
+fi
+
+passwd=$1
+group=$2
+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....$" )
+
+#globalUser
+#if not(globalFlag) && globalID
+if [ "$globalFlag" != "global" ] && [ -n "$globalID" ]; then
+    exit 21
+fi
+
+#if globalFlag && not(globalID)
+if [ "$globalFlag" = "global" ] && [ -z "$globalID" ]; then
+    exit 24
+fi
+
+#if globalFlag && globalID
+if [ "$globalFlag" = "global" ] && [ -n "$globalID" ]; 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
+    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
+
+
+checkName=$( cat /etc/passwd | cut -d':' -f1-3 | grep -e "^$username:" )
+
+if [ -z "$checkName" ]; then
+    echo $0": econtrei 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
+    echo $0": entrei outro usuario local com o mesmo id, devo remove-lo"
+fi
+
+#adicionar verificacao de nome e id para group?
+
+#add local user
+echo $0": Usuario local adicionado corretamente"
+exit 0