[ LUGOS ] perl skripta

Borut Mrak borut.mrak na ijs.si
Pet Avg 18 11:41:50 CEST 2000


On Fri, Aug 18, 2000 at 11:20:10AM +0200, Bostjan Muller wrote:
> fajl v katerem so te besede je zgrajen takole:
> username	pass (vmes je tab)
> Se pravi rad bi, da mi skripta zamenja geslo, ki pride za tabom, pa mi to
> nekako ne uspe:
> s temle: s/($1)\t.*/$1\t$2/; mi vedno izbrise gesla in ne napise noveg :(

Hehehe...perl ni bash.

s/^($ARGV[0])\t.*$/$1\t$ARGV[1]/

sicer pa to ni najboljsi nacin za to, kar zelis doseci (vsaj meni se tako
zdi). Za spreminjaje passwordov za UW-imap server uporabljam jaz nekaj
takega (z dodanimi se par dodatnimi sanity checki)

open PASSWD, "/etc/cram-md5.pwd";
@passwd=<PASSWD>;
close PASSWD;
chomp @passwd;

foreach $pass (@passwd) {
  s/^$ARGV[1]\t.*$/$ARGV[1]\t$ARGV[2]/
}

open NEWPASSWD, ">/etc/cram-md5.new";

foreach (@passwd) {
  print NEWPASSWD "$_\n";
}

close NEWPASSWD;

rename "/etc/cram-md5.new" "/etc/cram-md5.pwd";

To je priblizno to, napisano iz glave. Dobro bi bilo uporabit se kaksen
flock, predvsem pa NE PODAJAJ PASSWORDOV V COMMAND LINE-u!!!!

Raje zadevo modificiraj, da prebere podatke iz STDIN-a, ker obstaja moznost,
da bo user na masini videl parametre, ki jih podas procesu. Pazi tudi na
permissione, ki jih bo imel nov file.
Poleg tega pazi tudi, ko pises cram-md5.new, da datoteka slucajno ne ze
obstaja. No, ce obstaja, si jo naredil ti (razen ce imas world writable
/etc, kar pa nakazuje na problem med tipkovnico in stolom).

> Upam, da mi lahko kdo pomaga, ker sem ze obupal z branjema manualov in
> podobnega.

Nisi dovolj bral ;-]

lp,

-- 
Borut
borut.mrak na ijs.si
-----------------
Potato is just growing and growing.  I think it should be called a mutant
spud.
                 -- Adam Heath about the space requirements for Debian 2.2




Dodatne informacije o seznamu Starilist