Toon posts:

[linux] wachtwoorden updaten via een lijst

Pagina: 1
Acties:
  • 156 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
is er een manier om automatisch linux wachtwoorden te updaten via een lijst met wachtwoorden.
het gaat om 200 accounts die om de 3 maanden een nieuw wachtwoord moeten krijgen.
opmaak van de lijst bijv
piet 46trg73
henk vf676fd
jan 45gkh94

kan dit via een script of iets dergelijks? heb er totaal geen ervaring mee of heb ook geen idee in welke richting ik moet zoeken. B)

  • Hmzaniac
  • Registratie: Januari 2002
  • Laatst online: 05-08-2023

Hmzaniac

Evil Admin

ik heb wel een soortgelijk script, maar ga dit niet hier neerzetten.

ik zou zeggen, kijk eens naar sed en vooral awk. met awk is het mogelijk voor iedere regel van een bestand alle onderdelen gescheden door een bepaald teken (: , / _ you name it ) te splitsen in meerdere variabelen. icm met usermod kan je hiermee het password veranderen (je moet alleen nog even het password encrypten, want usermod accepteert geen plain-text passwords..)

Ik heb een WOS-post!


  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 09:15
Misschien heb je nog iets aan dit topic: [rml][ linux] adduser script[/rml]

  • LegacyCode
  • Registratie: Maart 2002
  • Laatst online: 29-04 20:07

LegacyCode

De crack van de division

Je kan ook met cut werken om naam en wachtwoord uit je lijst te halen.
En dan die naam greppen uit je /etc/passwd file,
en met passwd username kan je t wachtwoord wegschrijven
(echo $Pasw | passwd $User --stdin).
Heb voor school zo'n leuk scriptje moeten schrijven.

legacycode.net


  • Hmzaniac
  • Registratie: Januari 2002
  • Laatst online: 05-08-2023

Hmzaniac

Evil Admin

--stdin is alleen redhat, en ook wil je dat NIET hebben. je passwd gaat nl volledig unencrypted het systeem op, en iedereen die ps kan draaien, ziet alle passwords langskomen. nee, dank je.
|:(
gebruik dan usermod -p, hierbij moet je iig nog het gecrypte password opgeven (dit is zowiezo een veel nettere oplossing imo, kan je nl gewoon een awk doen op een file, en waar de x < UID < y is, verander je gewoon het password.

eigenlijk heb ik nu al een scriptje in mn hoofd :)

Ik heb een WOS-post!


  • Zeezicht
  • Registratie: Juni 2001
  • Laatst online: 18-04 10:18
Hmzaniac schreef op 10 February 2003 @ 11:22:
--stdin is alleen redhat, en ook wil je dat NIET hebben. je passwd gaat nl volledig unencrypted het systeem op, en iedereen die ps kan draaien, ziet alle passwords langskomen. nee, dank je.
Als de kernel gepatched is met de GR security patch en de juiste opties bij het compileren zijn gekozen, dan zie je alleen je eigen processen nog maar met ps.
Dus dan heb je dit probleem niet meer.
Maar ik ben het wel met je eens dat je het beter encrypted kan doen.

  • Hmzaniac
  • Registratie: Januari 2002
  • Laatst online: 05-08-2023

Hmzaniac

Evil Admin

dan nog kan je daar nooit op vertrouwen idd. al was het alleen maar vanwege het feit dat je het nu bijvoorbeeld niet meer remote zou kunnen gebruiken, er iemand achter je rug mee zou kunnen kijken, en de gemiddelde redhat gebruiker waarschijnlijk nog nooit van GrSecurity heeft gehoord (nofi)

Ik heb een WOS-post!


  • Zeezicht
  • Registratie: Juni 2001
  • Laatst online: 18-04 10:18
Waarom zou je het niet remote kunnen gebruiken? Je kan toch dan gewoon inloggen met SSH en dan het script uitvoeren....
En het achter je rug mee kijken heeft niks te maken of het encrypted is of niet, want hij wilde (volgens mij) die lijst zowieso unencrypted houden. Pas bij het veranderen van het passwd zou het dan eventueel encrypt worden. Dus die kan iedereen meelezen dan.

Idd hebben de meeste RH-ers daar niet van gehoord. Jammer dat het niet in de std. kernel voorkomt :(

Verwijderd

Dat je het niet meer remote kunt gebruiken is onzin. Op het moment dat je met usermod een encrypted wachtwoord moet gebruiken moet je alsnog een unencrypted string naar een wachtwoord converteren. Of die stap dus in je "genpasswd" script gebeurt of via echo "bladiebla" | passwd --stdin maakt geen klap uit. Sterker nog, ik zou kunnen beweren dat die methode nog veiliger is omdat er geen tussenstap nodig is om de wachtwoorden op te slaan. Tenzij jouw "genpasswd" script met pipes werkt word er een (un)encrypted lijst met wachtwoorden op de schijf opgeslagen. Niet echt een veilige methode...
edit:
Hier nog ff wat shell...

code:
1
2
3
4
5
6
for USER in `cat /etc/passwd|cut -d: -f1`; do
  TEMP=`makepasswd`
  ENC_TEMP=`echo ${TEMP} | crypt`
  usermod -p ${ENC_TEMP} ${USER}
  echo "${USER}:${TEMP}" >> /root/password-list
done

[ Voor 20% gewijzigd door Verwijderd op 10-02-2003 12:44 ]


  • Hmzaniac
  • Registratie: Januari 2002
  • Laatst online: 05-08-2023

Hmzaniac

Evil Admin

dat is waar natuurlijk, ik zat niet na te denken. Die lijst met passwords heb je echter altijd, tenzij je ze of al encrypted in de lijst zet, of ze allemaal met de hand invoert. Als die lijst echter read-only is voor root alleen, is het niet zo'n ramp. beter iig dan direct je password op je command line mee te geven.

Ik heb een WOS-post!


  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Uit de gawk manual:

code:
1
2
3
4
5
`print ITEMS | COMMAND'
     It is also possible to send output to another program through a
     pipe instead of into a file.   This type of redirection opens a
     pipe to COMMAND, and writes the values of ITEMS through this pipe
     to another process created to execute COMMAND.


Dat voorkomt dat het password zichtbaar is mbv ps, toch?

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


Verwijderd

Topicstarter
echo $Pasw | passwd $User --stdin <- dit werkt als ik user en pass invul :)
maar hoe nu dat die uit het bestand lees?

usermod -p <- hoe werkt dit commando

dat de lijst niet geencrypt is of dat die zichtbaar is maakt niet uit. (systeembeheerderhok met spigelruit en lamellen donker rot hok ;)) dus onbevoegde hebben het niet door. en alleen ik heb accounts op die bak verder niemand hier dus daar zit ook geen risico aan.

  • Hmzaniac
  • Registratie: Januari 2002
  • Laatst online: 05-08-2023

Hmzaniac

Evil Admin

code:
1
awk -F\  '{ print $1,$2 | "echo $2 | passwd $1 --stdin" }' /je/pass/file


zou in dat geval de truuk klaren

even een uitleg wat hier gebeurt:

awk: progje om teken-separated lijsten te splitsen:

-F\ : -F = je separator command, een spatie is je separator, maar omdat die geescaped moet worden, staat er \ (met 2 spaties, ZEER belangrijk)

print $1, $2 : print de eerste en 2e separate string
| "echo $2 | passwd $1 --stdin : pipe alle output ($1 en $2) naar dit volledige commando, waarin echo $2 je pass pipe'd naar passwd $1 --stdin.

Hierdoor doet ie dus effectief voor ieder item uit je list echo $pass | passswd $user --stdin

[ Voor 71% gewijzigd door Hmzaniac op 10-02-2003 14:31 ]

Ik heb een WOS-post!


Verwijderd

Topicstarter
code:
1
2
awk -F\  '{ print $1,$2 | "echo $2 | passwd $1 --stdin" }' /home/backup/passwords
passwd: This option requires a user name.

dit geeft die hier boven en hieronder staat de inhoud van de file
code:
1
2
3
victor 123456
jan jcvj37
piet doh345

Verwijderd

passwd --stdin werkt alleen onder red hat linux. Voor een scriptje met usermod zie mijn vorige posting...

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Verwijderd schreef op 10 February 2003 @ 16:12:
code:
1
2
awk '{ print $1,$2 | "echo $2 | passwd $1 --stdin" }' /home/backup/passwords
passwd: This option requires a user name.

dit geeft die hier boven en hieronder staat de inhoud van de file
code:
1
2
3
victor 123456
jan jcvj37
piet doh345
Probeer eens:
code:
1
awk  '{ print $2 | sprintf("passwd %s --stdin",$1) }'


PS: Er bestaat overigens ook een batch progje chpasswd dat een file in leest met user:password paren en dan passwords aanpast.

[ Voor 13% gewijzigd door Buffy op 10-02-2003 20:55 ]

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • Hmzaniac
  • Registratie: Januari 2002
  • Laatst online: 05-08-2023

Hmzaniac

Evil Admin

Verwijderd schreef op 10 February 2003 @ 17:08:
passwd --stdin werkt alleen onder red hat linux. Voor een scriptje met usermod zie mijn vorige posting...
raar.. hij zegt net dat passwd --stdin werkt (post boven mijn post) en het zou moeten werken..

maarja, ik heb de aanzet gegeven, dan speel je er nog wat mee rond, en maak je het af. Het probleem met jouw script is dat het a) alleen maar encrypted passwords maakt en b) alle users meeneemt, niet alleen de users die in je lijst staan.

Ik heb een WOS-post!


Verwijderd

/me gives all the credit to Hmzaniac :Z

code:
1
2
3
4
# cat lijstmetusers.txt
eenuser
nogeenuser
bladieblauser

code:
1
2
3
4
5
6
7
8
#!/bin/sh
for USER in `cat lijstmetusers.txt`; do
    UNENCRYPTED_PASSWORD=`makepassword`
    ENCRYPTED_PASSWORD=`echo ${UNENCRYPTED_PASSWORD} | crypt`
    usermod -p ${ENCRYPTED_PASSWORD} ${USER}
    echo -e "${USER}\t${UNENCRYPTED_PASSWORD}" \
    >> /root/lijstmetusersenwachtwoorden.txt
done

Dat van cat /etc/passwd heb je gelijk in, al ga ik ervan uit dat iemand zelf slim genoeg is om daar een lijst van eigen users in te stoppen. Dit heb ik ge-sleurt-en-pleurt uit een terminal, vandaar dat passwd daar staat. Echter na afloop van m'n script heb je netjes een lijst met "username unencryptedwachtwoord" so plz lees het script voordat je je comment post :+

/offtopic

[ Voor 9% gewijzigd door Verwijderd op 10-02-2003 22:30 ]


Verwijderd

Topicstarter
[root@linux backup]# awk -F\ '{ print $2 | sprintf("passwd %s --stdin",$1) }' /home/backup/passwords
Changing password for user victor.
Changing password for user piet.
Changing password for user henk.
passwd: all authentication tokens updated successfully.
passwd: all authentication tokens updated successfully.
passwd: all authentication tokens updated successfully.
[root@linux backup]#

woei thanx B) :>

scheelt hoop overbodig werk zo :)

Verwijderd

Topicstarter
kan je onder redhat 7.3 een user bijv de user password als gewone user extra rechten geven om het script te draaien en alle wachtwoorden te wijzigen?

Verwijderd

Yupz, zie deze thread
Pagina: 1