Strona 1 z 1

[+] Bash, tworzenie kont wielu użytkowników

: 27 marca 2012, 11:35
autor: sauvage
Witam.
Proszę o pomoc w analizie kodu, próbuję napisać skrypt, jednak cały czas coś "nie gra".
P
roszę o wskazówki i z góry dziękuję.
Oto co stworzyłem:

Kod: Zaznacz cały

#!bin/bash
a=”uzytkownicy.txt”
b=`cat $a  |wc –l`
for x In `seq $b`
do
c="cat $a |head –n $x |tail –n 1”  
login=`echo $c |cut –d: –f1`   
haslo=`echo $c |cut –d: -f2`
grupa=`echo $c |cut –d: -f3` 
useradd  -m – g $grupa –p $haslo $login
chpasswd <<KONIEC
$login:$haslo
KONIEC
done
Oczywiście plik uzytkownicy.txt zawiera:

Kod: Zaznacz cały

aadamowski:0123:pierwsza_gr
ddawidowski:00123:druga_gr
mmarcinowski:12300:druga_gr

: 27 marca 2012, 18:24
autor: pyrion

Kod: Zaznacz cały

while read LINE
do
    LOGIN=`echo $LINE | cut -d: -f1`
    HASLO=`echo $LINE | cut -d: -f2`
    GRUPA=`echo $LINE | cut -d: -f3`
    useradd  -m -g $GRUPA -p $HASLO $LOGIN
done < uzytkownicy.txt

: 27 marca 2012, 18:58
autor: sauvage
Dziękuję, właśnie tego mi brakowało. Wszystko działą jak należy, temat uważam za zamknięty.

Zrobione to jednak inną droga niż pierwotne założenie ale cel osiągnięty. Czy można to zrobić czyściej bez echo i cut?

Kod: Zaznacz cały

#!bin/bash
if 
[ $# -eq 0 ] ; then
echo “####   ZAPOMNIAŁEŚ O PARAMETRZE  ####”
else
while read line
do
login=`echo $line | cut –d: -f1`
grupa=`echo $line | cut –d: -f2`
haslo=`echo $line | cut –d: -f3`
echo “Login to:$login, Grupa to:$grupa, Hasło to:$haslo”
groupadd $grupa 2>/dev/null
[ $? –eq 0 ] && echo “grupa $group nie istniała i została utworzona”
useradd –m –g &grupa $login –p $haslo
done < $1
fi
Skorzystaj z opcji podglądu wiadomości.