Merhaba, Aklıma gelen 1-2 şeyi paylaşmak istiyorum.
1) Elinizde sadece öğrencilerin adları ve soyadları olan bir liste olsaydı, kullanıcı adlarını otomatik olarak yarattırabilirsiniz aslında.. Ya da öğrenci numaraları (eşsiz olduklarını varsayıyorum) da kullanıcı adı olarak kullanılabilir. 2) Değişken ataması, değişken karşılaştırması yaparken "" kullanmakta fayda var; örneğin dosya="~liste" gibi.. 3) Bash betiği içerisinde perl satırı kullanmasanız daha iyi olur bence.. Perl, her dağıtımda geliyor dahi olsa yine de betiğin dışa daha az bağımlı olması daha iyi olur. O satırı mkpasswd kullanan başka bir satırla değiştirebilirsiniz. 4) useradd ile başlayan satırda her kullanıcının kendine ait bir grubu olmasını sağlıyorsunuz. Bunun yerine öğrencileri tek bir grupta toplamak izinler açısından daha kolay olurmuş gibime geliyor. İyi çalışmalar.. Alper KANAT <tu...@raptiye.org> Bülent ŞENER wrote: > Merhaba, > Üniversitemizde herbir öğrencimize bir mail hesabı açmak istiyoruz. Bu > mail hesapları aynı zamanda linux kullanıcıları olacak. > Öğrenci sayısı fazla olduğu için tek tek hesap açmak oldukça uzun > zaman alacaktı. Bunu hızlıca yapacak bir betik arayışına girdim. > Edindiğim bilgiler sonucunda aşağıdaki gibi bir betik yazdım. Geçici > olarak işimi görüyor. > Hem paylaşayım istedim hem de daha iyi öneriler gelir umuduyla buraya > yazıyorum. > > > #!/bin/bash > #### bu betik adiyaman universitesi ogrencilerine > #### mail hesabi acilmasi icin yazildi. > #### betik, ogrenciler icin kullanici adlari olarak > #### belirledigim isimleri bir listeden okuyor ve > #### bu isimler icin 6 basamakli bir sayiyi sifre > #### olarak belirliyor. daha sonra bu bilgileri > #### sisteme kullanici eklemek icin kullaniyor > > #### kullanici adlarinin alinacagi dosya > dosya=~/liste > > #### isimler dongu ile aliniyor > for mail in $(awk -F, '{print $1}' < "$dosya" ) > do > #### rastgele sayi uretiliyor > sayi=$RANDOM > #### rastgele sayi her kosulda max 5 basamakli olacagi icin > #### 200000'den rastgele sayiyi cikarinca kalan sayi her > #### kosulda 6 basamakli oluyor > ((ysayi=200000-$sayi)) > #### kullanici icin sifre olusturan bolum > pass=$(perl -e 'print crypt($ARGV[0], "password")' $ysayi) > #### kullaniciyi sisteme ekleyen komut > useradd -m -p $pass $mail > #### kullanici adini ve sifresini bis dosyaya yazdiran bolum > #### buradaki sifre kullanicilara gecici sifrelerini > #### bildirmek icin kullanilacak > echo "$mail,$ysayi">>password_list > done > > Saygılarımla, > Bülent ŞENER > _______________________________________________ > Linux-programlama mailing list > Linux-programlama@liste.linux.org.tr > http://liste.linux.org.tr/mailman/listinfo/linux-programlama
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr http://liste.linux.org.tr/mailman/listinfo/linux-programlama