shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script para gerar lista de comandos no linux de usuar


From: Enilton Angelim
Subject: Re: [shell-script] Script para gerar lista de comandos no linux de usuarios e grupos
Date: Thu, 11 Apr 2019 14:02:56 -0300

Olá, fiz esse script tentando ser didático. Espero que te ajude.

usuariosGrupos.sh

```
#!/bin/bash -x
export groupCommand="groupadd -g"
export userCommand="useradd -u %s -g %s -G %s %s"

function userIdInfoParser() {

local dataToList=($1)
local dataListSize=${#dataToList[@]}
local charSeparatedBy="$2"
local fieldSeparatedBy="$3"
local purgeChars="$4"

local groupAdds=()
declare -A useradd

for(( i=0; i<dataListSize; i++ )) {
case ${dataToList[$i]%%$fieldSeparatedBy*} in
ui*)
dataField=${dataToList[$i]##*$fieldSeparatedBy}
dataFields=(${dataField//[$purgeChars]/ })
useradd['uid']=${dataFields[0]}
useradd['username']=${dataFields[1]}
;;
gi*)
dataField=${dataToList[$i]##*$fieldSeparatedBy}
dataFields=(${dataField//[$purgeChars]/ })
useradd['principalGroup']=${dataFields[1]}
groupAdds[${#groupAdds[@]}]="$groupCommand ${dataFields[0]} ${dataFields[1]};"
;;
gr*)
groupField=${dataToList[$i]##*$fieldSeparatedBy}
for dataField in ${groupField//$charSeparatedBy/ }; do
dataFields=(${dataField//[$purgeChars]/ })
useradd['secondaryGroup']+="${dataFields[1]},"
groupAdds[${#groupAdds[@]}]="$groupCommand ${dataFields[0]} ${dataFields[1]};"
done
;;
esac;
}

echo ${groupAdds[@]}

#printf "$userCommand \n" ${useradd[@]} What? Was?
printf "$userCommand \n" ${useradd['uid']} ${useradd['principalGroup']} ${useradd['secondaryGroup']%,} ${useradd['username']}

}

userIdInfoParser "$1" "$2" "$3" "$4"

```

f13@auth:~/workspace$ ./usuariosGrupos.sh "$(id f13)" "," "=" "()"

```
groupadd -g 1000 f13; groupadd -g 1000 f13; groupadd -g 4 adm; groupadd -g 24 cdrom; groupadd -g 27 sudo; groupadd -g 30 dip; groupadd -g 46 plugdev; groupadd
-g 116 lpadmin; groupadd -g 126 sambashare;

useradd -u 1000 -g f13 -G f13,adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare f13
```

#! Enilton Angelim
## F13 Tecnologia



Em qua, 10 de abr de 2019 às 13:17, Michael Costa address@hidden [shell-script] <address@hidden> escreveu:
 

Pessoal,

Tenho que ficar replicando usuários e grupos entre servidores, a informação que recebo do time de oracle é a seguinte:

root@servidor:/root # id oracle
uid=281(oracle) gid=236(oinstall) groups=261(sapinst),293(dba),294(oper),237(asmadmin),207(asmoper),208(asmdba)

Baseado na informação acima, tenho que digitar os comandos:
groupadd -g 236 oinstall
groupadd -g 261 sapinst
groupadd -g 292 dba
groupadd -g 294 oper
groupadd -g 237 asmadmin
groupadd -g 207 asmoper
groupadd -g 208 asmdba
useradd -u 281 -g oinstall -G sapinst,dba,oper,asmadmin,asmoper,asmdba oracle

Tem como automatizar isto ? Eu jogar o conteudo que ele me envia em um arquivo e rodar um script para ele gerar os comandos acima ?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]