Skip to content
Snippets Groups Projects
Commit 7d70259f authored by Thiago Abdo's avatar Thiago Abdo
Browse files

Add checks for id and group names


Signed-off-by: default avatarThiago Abdo <tja14@inf.ufpr.br>
parent 466bf866
Branches
No related tags found
No related merge requests found
......@@ -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"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment