From a0633dd82764765689c6af329ad2a9556b228669 Mon Sep 17 00:00:00 2001 From: Thiago Abdo <tja14@inf.ufpr.br> Date: Thu, 25 Feb 2016 11:00:13 -0300 Subject: [PATCH] Update sketch_hd_user Signed-off-by: Thiago Abdo <tja14@inf.ufpr.br> --- hdd/sketch_hd_user.sh | 89 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 79 insertions(+), 10 deletions(-) diff --git a/hdd/sketch_hd_user.sh b/hdd/sketch_hd_user.sh index 0c05967..3ce4847 100755 --- a/hdd/sketch_hd_user.sh +++ b/hdd/sketch_hd_user.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ash #Check if the user running this code has permissoes to run it if [ "$(/usr/bin/id -r -u)" != "0" ]; then @@ -8,26 +8,95 @@ if [ "$(/usr/bin/id -r -u)" != "0" ]; then #echo $0": VocĂȘ tem permissoes para executar esse programa" fi +if [ -z "$1" ];then + . /opt/openslx/config || { echo "Could not source config!"; exit 23; } +else + . "$1" || { echo "Could not source custom config!"; exit 23; } +fi + +unset IFS +set $SLX_USERS +while (($#)); do + #Get infos from file + passwdf=$(echo $1 | cut -d'=' -f2) + shift + shadowf=$(echo $1 | cut -d'=' -f2) + shift + groupf=$(echo $1 | cut -d'=' -f2) + shift + + username=$( echo $passwdf | cut -d':' -f1 ) + uID=$( echo $passwdf | cut -d':' -f3 ) + globalID=$( echo $uID | grep -e "^3....$" ) + + groupname=$( echo $groupf | cut -d':' -f1 ) + gID=$( echo $groupf | cut -d':' -f3 ) + globalGID=$( echo $gID | grep -e "^3....$" ) + + #group == username + if [ "$username" = "$groupname" ]; then + #id no range certo(local user) + if [ -n "$globalID" ] && [ -n "$globalGID" ]; then + #add to files; + ./adduser.sh "$passwdf" "$groupf" "$shadowf" "global" + fi + fi +done + +#add groups to global users +#for line in SLX_GROUPS; do +# IFS=, +# set $line +# username=$1 +# shift +# while (($#)); do +# addusertogroup "$username" "$1" +# temp=$(mktemp) +# firstuser=$( echo /etc/group | grep -e '^$1:.*:.*:$' ) +# if [ -n "$firstuser" ]; then +# sed -e 's/^$1.*/&$username/' /etc/group > $temp +# else +# sed -e 's/^$1.*/&,$username/' /etc/group > $temp +# fi +# cp $temp /etc/group +# chown root:root /etc/group +# chmod 644 /etc/group +# rm $temp +# shift +# done +# unset IFS +#done + #Instanciates the configuration file unset IFS -users=$(cat config); +users=$(cat /home/openslx/config); set $users while (($#)); do #Get infos from file - passwd=$(echo $1 | cut -d'=' -f2) + passwdf=$(echo $1 | cut -d'=' -f2) shift - shadow=$(echo $1 | cut -d'=' -f2) + shadowf=$(echo $1 | cut -d'=' -f2) shift - group=$(echo $1 | cut -d'=' -f2) + groupf=$(echo $1 | cut -d'=' -f2) shift - #check for errors - #group == username - #id no range certo(local user) - #add to files; - #adduser.sh "$passwd" "$shadow" "$group" + username=$( echo $passwdf | cut -d':' -f1 ) + uID=$( echo $passwdf | cut -d':' -f3 ) + localID=$( echo $uID | grep -e "^2....$" -e "^1....$" ) + groupname=$( echo $groupf | cut -d':' -f1 ) + gID=$( echo $groupf | cut -d':' -f3 ) + localGID=$( echo $gID | grep -e "^2....$" -e "^1....$" ) + + #group == username + if [ "$username" = "$groupname" ]; then + #id no range certo(local user) + if [ -n "$localID" ] && [ -n "$localGID" ]; then + #add to files; + ./adduser.sh "$passwdf" "$groupf" "$shadowf" + fi + fi done #if [ -d /home/openslx ]; then -- GitLab