This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
program_lang:bash [2023/11/24 18:09] manu |
program_lang:bash [2024/04/17 16:06] (current) manu |
||
|---|---|---|---|
| Line 119: | Line 119: | ||
| arr=( $(ls) ) Save ls output as an array of files | arr=( $(ls) ) Save ls output as an array of files | ||
| ${arr[@]:s:n} Retrieve n elements starting at index s | ${arr[@]:s:n} Retrieve n elements starting at index s | ||
| + | |||
| + | Exemple | ||
| + | <cli prompt='#'> | ||
| + | #!/usr/bin/bash | ||
| + | declare -a Users=('user01' '1001' '1000' '' '' '/bin/bash') | ||
| + | Users+=('user02' '1002' '1003' '' '' '/bin/bash') | ||
| + | Users+=('user03' '1003' '4' 'Recovery user' '' '/bin/bash') | ||
| + | |||
| + | UserNbProps=6 | ||
| + | let NbUsers=${#Users[@]}/$UserNbProps | ||
| + | |||
| + | for (( i=0; i<$NbUsers; i++ )) | ||
| + | do | ||
| + | let ArrayIndex=i*UserNbProps | ||
| + | Line=$(cat /etc/passwd | grep "^${Users[$ArrayIndex]}:") | ||
| + | if [ -z "$Line" ] | ||
| + | then | ||
| + | echo "# ${Users[$ArrayIndex]} user was not found" | ||
| + | else | ||
| + | Uid=$(echo $Line | cut -d: -f3) | ||
| + | Gid=$(echo $Line | cut -d: -f4) | ||
| + | UidRef=${Users[$ArrayIndex+1]} | ||
| + | GidRef=${Users[$ArrayIndex+2]} | ||
| + | if [ $Uid != $UidRef -o $Gid != $GidRef ] | ||
| + | then | ||
| + | echo "# User: ${Users[$ArrayIndex]} uid:$Uid gid:$Gid does not match reference uid:$UidRef gid:$GidRef" | ||
| + | fi | ||
| + | fi | ||
| + | done | ||
| + | </cli> | ||
| | | ||
| ===== Read files ===== | ===== Read files ===== | ||