[ nikol@c @ 02.04.2007. 09:43 ] @
Pozdrav,

Da li je moguce zakljucati lozinke svim userima na serveru? Naravno jednom komandom.
Kao sto mogu da zakljucam jednog:

passwd -l user
[ Tyler Durden @ 02.04.2007. 11:06 ] @
Napravi skripticu. Nesto kao
Code:
for i in `cat /etc/passwd | gawk '{FS = ":"} {print $1}`; do passwd -l $i; done;


Ne mogu da ti se zakunem da ce ti tacno ovo izlistati, provjeri prije. A gotovo sam siguran da postoji bolji i elegantniji nacin, ali ne mogu da se sjetim.
[ nikol@c @ 02.04.2007. 11:14 ] @
Znaci ne postoji neka komandica?
Dosta sam Googlao ali nisam nasao nista konkretno. Hvala u svakom slucaju.

Pozdrav.
[ VRider @ 02.04.2007. 14:34 ] @
@Tyler Durden: I ja sam slicno pomislio cim sam video temu, samo sa malom varijacijom. Umesto /etc/passwd, da potrebne usernameove dobijem iz /etc/shadow (da lockujem samo one naloge koji imaju definisan password).

cut -d':' -f 1,2 /etc/shadow --output-delimiter=" " | grep '\\$' | grep -v root | cut -d" " -f 1 | xargs passwd -l



[Ovu poruku je menjao VRider dana 02.04.2007. u 16:29 GMT+1]
[ Tyler Durden @ 02.04.2007. 15:11 ] @

A šta je
Code:
grep '\\$'
[ VRider @ 02.04.2007. 15:30 ] @
To je [es] koji buguje.
Ako stavim \$, onda ni ne prikaze "\" jer escapuje $ prilikom prikazivanja?? Pa sam stavio dva \\, ali sada prikaze oba.
[ unleaded @ 02.04.2007. 16:59 ] @
Mozda bi ovako bilo najjednostavije
Code:
#!/bin/sh
  for i in $( ls /home ); do
    passwd -l $i
  done


A za otkljucavanje svih isto to samo malo drugacije
Code:
#!/bin/sh
  for i in $( ls /home ); do
    passwd -u $i
  done
[ markom @ 02.04.2007. 17:03 ] @
Elem, imam par zamerki na tu komandu... Prva je da ako imaš korisnika "brootus", neće mu zaključati password. Druga zamerka je da ako imaš korisnika čiji password nije MD5 hash već crypt, ni njemu neće zaključati password. Isto tako, korisnik može da ima password u /etc/passwd, bez obzira na to što se koristi shadow password.

Ja bih ipak koristio malu varijaciju na temu Tylerove skripte:

Code:
for user in `cat /etc/passwd | egrep -v "^root:" | cut -d: -f1`; do echo passwd -l $user; done;


Izbaci "echo" viška iz komande, tu je kao failsafe ;-)

@unleaded: A šta sa korisnicima čiji home direktorijum nije u /home?

Marko.
[ VRider @ 02.04.2007. 17:14 ] @
Za filtriranje root-a stoji, ali te za md5 i crypt ne pratim?
[ markom @ 02.04.2007. 17:28 ] @
MD5 passwordi imaju format "$SALT$hash", dok crypt passwordi imaju format "SAhash", gde je SA dvoslovni salt. Kao što vidiš, ovi potonji nemaju $ u sebi :-). Tvoj grep ih neće pokupiti, ako je bila namera dela "grep '\\$'".

Marko.
[ unleaded @ 02.04.2007. 18:08 ] @
Citat:
A šta sa korisnicima čiji home direktorijum nije u /home?


Za uobicajene korisnike je dovoljno. Ako imas nekog posebno konfigurisanog,
onda naravno nije, no pitanje je da li takvim (posebnim) treba zakljucati
lozinku skriptom (filtrirajuci samo root-a) ili treba svakog posebno razmotriti i
eventualno odraditi zakljucavanje rucno (ili ih dodati na kraj skripte, svakog posebno).
[ markom @ 02.04.2007. 18:28 ] @
Pa recimo ako imaš par desetina hiljada korisnika, uobičajeno je da ih imaš u recimo /home/u/s/user. čisto da bi ti ls radio kako treba... ;-)

Marko.
[ anrxc @ 02.04.2007. 18:53 ] @
Opcenito pokrecete previse procesa, Tylerovo rijesenje je jos nekako najzgodnije, ali cemu cat? :)
awk -F ":" '!/^root:/ {print $1}' file

Mozemo li vidjeti nekakav perl one-liner? :)


[Ovu poruku je menjao anrxc dana 02.04.2007. u 20:09 GMT+1]
[ unleaded @ 02.04.2007. 22:06 ] @
Citat:
čisto da bi ti ls radio kako treba.

Mislis na ono kad dobijes "lista preduga" ili tako nekako i vrati prompt?
To nisam vidio od SCO-a (pfuj, pfuj, daleko bilo :).
U trenutnom okruzenju, samo na jednom serveru ima oko 1500 korisnika
(a nema ih vise od 2000) tako da ls radi normalno, svi ostali su sa manje.
Ako ih bude par desetina hiljada i svi da budu u jednom direktoriju zajedno
(moze do 32000) onda bi mozda moglo ovako
Code:
#!/bin/sh
cd /tamo/dje/vec/jesu
ls | xargs -n1 passwd -l

Na test racunaru radi, no on svakako nije valjan uzorak, a u realnim uslovima...
ako zatreba, probacemo :).
[ Srđan Pavlović @ 03.04.2007. 05:30 ] @
izvinjavam se sto upadam sa "rookie" pitanjem, ali ucim linux polako, pa me zanima:

Da li se u Linuxu moze odrediti u kom dir-u i fajlu ce da se drze passwordi ili
je to nemoguce?
Ako jeste, koji su to direktorijumi i fajlovi u razlicitim distribucijama u kojima se
cuvaju lozinke?

I da li ima koja komanda koja ce na sistemu da ti kaze u kom fajlu se
cuvaju lozinke (dir/file), naravno, podrazumevam da imas root permisije?

[ nikol@c @ 03.04.2007. 10:56 ] @
U mom slucaju su samo obicni korisnici, nema nekih posebno konfigurisanig korisnika. Naravno podrazumjeva se da ne zakljucam i root usera ako je to uopste moguce :). Sta da upisem ako mi se korisnici nalaze u home/ppp folderu?

Pozdrav
[ nkrgovic @ 03.04.2007. 11:09 ] @
Citat:
markom: Pa recimo ako imaš par desetina hiljada korisnika, uobičajeno je da ih imaš u recimo /home/u/s/user. čisto da bi ti ls radio kako treba... ;-)

Marko.

Na dobrom si putu :) Ako imas nekoliko desetina hiljada korisnika, neces imati ni jedan passwd fajl, vec ces ih drzati u NIS-u, LDAP-u, ili necemu slicnom. Jedini pravilan nacin da dobijes spisak svih usera je da koristis getpwent() - koji ce ti vratiti listu svih korisnika na sistemu. Onda mozes tim korisnicima lockovati password po zelji. Sva ostala pretumbavanja passwd fajla podrazumevaju da je sve u tom fajlu, sto ne mora biti :).
[ caiser @ 03.04.2007. 18:20 ] @
Citat:
nkrgovic: Na dobrom si putu :) Ako imas nekoliko desetina hiljada korisnika, neces imati ni jedan passwd fajl, vec ces ih drzati u NIS-u, LDAP-u, ili necemu slicnom.


Jedini pravi razlog za koriscenje NIS-a, LDAP-a, nekog DB-a, etc, za sistemske korisnike je ako oni moraju postojati na vise servera. Sve ostalo je nepotrebno komplikovanje.
[ nkrgovic @ 03.04.2007. 21:10 ] @
Citat:
caiser: Jedini pravi razlog za koriscenje NIS-a, LDAP-a, nekog DB-a, etc, za sistemske korisnike je ako oni moraju postojati na vise servera. Sve ostalo je nepotrebno komplikovanje.

Ovaj, covek je pitao za zakljucavanje fizickih, ne sistemskih korisnika. Po mojoj logici ces bas njih i drzati u LDAP-u, zato i predlog da se koriste POSIX f-je koje prate ono sto stavis u nsswitch.conf, a ne rucno cackas po passwd fajlu.
[ caiser @ 04.04.2007. 09:29 ] @
Mislim da malo brkas pojmove. :) Sistemski korisnik je svaki korisnik za koga sistem zna. Sto znaci da se to odnosi i na korisnika root, i na korisnika nobody, i na korisnika pera.
Funkcija NIS-a, LDAP-a ili bilo cega drugog je olaksavanje administracije u velikim okruzenjima, dnosno cuvanje korisnika na jednom mestu. Tako da kada je potrebna neka izmena, brisanje ili novi unos to se ne radi na svakom serveru pojedinacno, vec na jednom centralnom mestu. A to raditi na jednom serveru je, sto bi se reklo, overkill. :)
[ nkrgovic @ 04.04.2007. 11:38 ] @
Citat:
caiser: Mislim da malo brkas pojmove. :) Sistemski korisnik je svaki korisnik za koga sistem zna. Sto znaci da se to odnosi i na korisnika root, i na korisnika nobody, i na korisnika pera.
Funkcija NIS-a, LDAP-a ili bilo cega drugog je olaksavanje administracije u velikim okruzenjima, dnosno cuvanje korisnika na jednom mestu. Tako da kada je potrebna neka izmena, brisanje ili novi unos to se ne radi na svakom serveru pojedinacno, vec na jednom centralnom mestu. A to raditi na jednom serveru je, sto bi se reklo, overkill. :)

Ja sam stekao utisak da ovde ljudi korisnike dele na sistemske (one koje sistem koristi interno - najcesce one sa UID<100) i fizicke, one koji odgovaraju zivim ljudima koji koriste taj sistem. Ako mislis da je terminologija pogresna, izvoli ispravi je... Ili pokusavas da kazes da nema razlike izmedju root, bin ili miljan naloga?

Pricu smo poceli oko velikog broja korisnika. Pazi, prvo - kad imas jako veliki broj korisnika logicno ih je drzati u LDAP-u. Kad dodjes do 10K korisnika pretraga samog passwd fajla uopste vise nije naivna. Drugo, zelis nesto sto ima normalan bekap i odrzavanje. Konacno, aman covece, ko ima 10K korisnika i jednu jedinu spravu? Kakva je to sprava? :) Na 10K korisnika zelis redundantan sistem, a ako ga nemas racunas da ces ga skoro imati, pa stvari organizujes na vreme tako da omogucis sebi laku migraciju.

Back on topic: covek je pitao za zakljucavanje "fizickih" (lepo rekavsi ne root, bin i slicnih) korisnika. Ja i dalje mislim da je mnogo bolje raditi sa POSIX f-jama, a ne cackati po fajlovima, jer je to jedini nacin da ono sto napises bude portabilno i primenjljivo i neki sledeci put. Pretpostavljam da to radi za dosta korisnika, jednostavno zato sto bi za 5 njih odradio to rucno, a ne pisao skriptu. Shodno tome logicno je da to sto napise mora da bude nezavisno od fizickog rada sa sistemom, i da radi onako kako je u tom trenutku sistemo podesen. A tome sluze nsswitch.conf i zato se koriste POSIX f-je. To je ujedno bio i odgovor na pitanje kolege koji se interesovao za mogucnost da se ti podaci drze "negde drugde", tj. nacin da se i on uputi na nsswitch.conf :) .

Standardi postoje da bi se postovali, ako mislis drugacije, onda izvoli na advocacy, pa mozemo tamo o tome. :)
[ nikol@c @ 04.04.2007. 13:19 ] @
Malo su me zbunili vasi postovi.
Na ovom serveru imam oko 2K i 2,5K korisnika, lozinke su smjestene u etc/passwd fajlu.
Sada vise ne znam sta treba da upisem da bi ih zakljucao.
Moze li mali putokaz :)

Pozdrav
[ VRider @ 04.04.2007. 13:25 ] @
Ako zelis da ih sprecis sve da se uloguju, zasto lepo ne kreiras nologin fajl?
Sta u stvari zelis da postignes?
[ nikol@c @ 04.04.2007. 13:32 ] @
Korisnici se nesmetano konektuju bez vremenskih ogranicenja.

[Ovu poruku je menjao nikol@c dana 04.04.2007. u 15:27 GMT+1]

[Ovu poruku je menjao nikol@c dana 10.04.2007. u 10:51 GMT+1]
[ nkrgovic @ 04.04.2007. 14:33 ] @
Citat:
nikol@c: Malo su me zbunili vasi postovi.
Na ovom serveru imam oko 2K i 2,5K korisnika, lozinke su smjestene u etc/passwd fajlu.
Sada vise ne znam sta treba da upisem da bi ih zakljucao.
Moze li mali putokaz :)

Ako su svi u paswd fajlu onda je ideja da predjes kroz njega red po red for petljom i vadis usernames skroz OK. Slao ti je neko vec primer :). Onda, naravno, kazes passwd -l $userename :).

Odvojeno od toga, posto pretpostavljam da za 2K5 korisnika imas vise od jednog servera, nije losa ideja da razmislis o nekom malo naprednijem sistemu cuvanja korisnickih podataka... To samo kao savet :).