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