Portál AbcLinuxu, 26. dubna 2024 12:46


Dotaz: hromadne pridani uzivatelu

8.11.2006 08:20 liku | skóre: 10
hromadne pridani uzivatelu
Přečteno: 271×
Odpovědět | Admin
Zdravim, rád bych se zeptal, jeslti byste mi někdo mohl pomoci najít skript, který z externího souboru prida uživatele do systému. Jde mi o to, abych nemusel pridavat kazdeho uzivatele zvlast. diky Lik
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.11.2006 08:35 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: hromadne pridani uzivatelu
Odpovědět | | Sbalit | Link | Blokovat | Admin
man useradd
8.11.2006 08:36 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: hromadne pridani uzivatelu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na co hledat? Takovou věc je rychlejší rovnou napsat :-)
-- Nezdar není hanbou, hanbou je strach z pokusu.
8.11.2006 08:44 Kvaso
Rozbalit Rozbalit vše Re: hromadne pridani uzivatelu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Cao, toto som používal ja na mandrive. Nie je to bohvie čo (možno to bude treba trochu upraviť)ale úcel to splnilo:)
#!/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ť :)
8.11.2006 08:47 liku | skóre: 10
Rozbalit Rozbalit vše Re: hromadne pridani uzivatelu
Ahoj, díky za skript. Mohl bys mi prosím poslat i ten skriptik na generovani loginu a nahodneho hesla? díky Lik
8.11.2006 08:59 Kvaso
Rozbalit Rozbalit vše Re: hromadne pridani uzivatelu
Tak tu je ten scriptik...
#!/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ť :)
8.11.2006 08:51 erycek
Rozbalit Rozbalit vše Re: hromadne pridani uzivatelu
Odpovědět | | Sbalit | Link | Blokovat | Admin
to bude jednoduchy skriptik, ktery pouzije prikazu 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.
8.11.2006 11:03 Peter Lehotsky | skóre: 26 | Prague
Rozbalit Rozbalit vše Re: hromadne pridani uzivatelu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na hromadne vytvareni uzivatelu je prikaz newusers a jeho vstup je ve formatu /ets/passwd (tedy pokud se nepletu, naposled jsem to resil pred rokem).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.