Portál AbcLinuxu, 13. května 2025 10:31
#!/bin/bash
#******************************************************************************#
# pouzitie: usersins subor.txt
# subor.txt ma 4 stlpce: meno, priezvisko, password, username
# oddelene medzerou
#******************************************************************************#
source=$1
shell=/bin/bash
homeprefix=/users/
if [ ! -f $source ]; then
echo "Neexistuje subor!"
else
pocet=`wc -l $source | cut -d ' ' -f1`
for i in `seq $pocet`; do
username=`head -n $i $source | tail -n 1 | cut -d ' ' -f3`
userpasw=`head -n $i $source | tail -n 1 | cut -d ' ' -f4`
home=$homeprefix$username
adduser -s $shell -d $home -p $userpasw $username
echo $userpasw | passwd $username --stdin
done
fi
na generovanie "subor.txt" mam ešte jeden skriptík ktorý vytvorí podľa mena a priezviska login a vygeneruje nahodne heslo - ak by bol záujem môžem ho dodať :)
#!/bin/bash
#******************************************************************************#
# pouzitie: genusers subor.txt
# subor.txt ma 2 stlpce: priezvisko, meno
# script vytvori ako treti stlpec login uzivatela ako priezvisko bez diakritiky
# plus prve dve pismena bez diakritiky z mena. Ako stvrty stlpec vytvori
# nahodne vygenerovane heslo s dlzkou $maxlenght
#******************************************************************************#
source=$1
maxlenght=10
matica="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
rok=`date +%G`
rok_nast=$((rok-${source:0:1}+1))
usrprefix=${rok_nast:3:1}
if [ ! -f $source ]; then
echo "File $source doesnt exist!"
else
pocet=`wc -l $source | cut -d ' ' -f1`
for i in `seq $pocet`; do
m=`head -n $i $source | tail -n 1 | cut -f2 -d ' '`
p=`head -n $i $source | tail -n 1 | cut -f1 -d ' '`
echo "Generujem prihlasovacie udaje pre: "$p $m
meno=`accentrem $m`
priezv=`accentrem $p`
usrlogin=s$usrprefix${priezv:0:6}${meno:0:3}
usrpaswd=""
for j in `seq $maxlenght`; do
usrpaswd=$usrpaswd${matica:$(($RANDOM%${#matica})):1}
done
echo "ok"
echo $m $p $usrlogin $usrpaswd >> $source.temp
done
cp $source $source.old
cp $source.temp $source
rm $source.temp
fi
Ešte je tam použitý malý script na odstránenie diakritiky "accentrem" :
#!/bin/bash
#******************************************************************************#
# pouzitie: accentrem $string
# odstrani zo $string diakritiku a zmeni vsetky pismena na male
#******************************************************************************#
input=$1
array1=( á Á ä č Č ď Ď é É í Í ľ Ľ ĺ Ĺ ň Ň ó Ó ô ř Ř ŕ Ř š Š ť Ť ů Ů ú Ú ý Ý ž Ž)
array2=( a A a c C d D e E i I l L l L n N o O o r R r R s S t T u U u U y Y z Z)
for j in `seq 0 35`; do
temp=${input//${array1[$j]}/${array2[$j]}}
input=$temp
done
echo $input | tr A-Z a-z
snáď som nezabudol na niektoré české znaky :)
Dúfam, že bude dobre slúžiť :)
useradd
. Na napovedu bude stacit
#>useradd --help
.
Pokud by se melo jednat jen o pridani useru do systemu tak
#! /bin/bash
for USER in seznam_uzivatelu
do
useradd $USER
done
pokud to ma byt i s heslem, tak doporucuji utilitku pwgen a neco z openssl na spocitani MD5 hashe.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.