View Full Version : automatizzare inserimento password
Ciao ragazzi,
avrei la necessità, usando samba e il suo tool smbpasswd, di inserire una quantità un po elevata di password.
ho usato lo script mksmbpasswd.sh per creare il database smbpasswd con tutti gli utenti dentro:
cat /etc/passwd |/etc/samba/mksmbpasswd.sh > /etc/samba/smbpasswd
ora pero dovrei poter inserire le password, per ora uguali a tutti gli utenti, allo
scopo ho gia predisposto uno script alla buona di test:
#!/bin/bash
gawk -F: '{ print $1 }' /etc/passwd > testpasswd
for i in `cat /etc/samba/testpasswd`
do
echo ""
echo "*** inserire password per $i ***"
echo ""
smbpasswd -a $i
done
con esso, prendendo gli user da /etc /passwd, vado ad inserire la pass all'interno del file precedentemente creato... tuttavia la pass come è giusto che sia mi viene richiesta a video.
esiste un modo per cui io setto la passwd in una variabile e riesco a darla in pasto all'input che appare a video?
mille tnx
ilsensine
26-10-2005, 20:14
Eh eh non li freghi facilmente quelli...i programmi come smbpasswd richiedono un terminale, se usi un pipe sgamano...
Credo che occorrerebbe un programmino che crei un pts (pseudo-terminal) e tramite quello foraggi opportunamente smbpasswd...
tnx dell'intervento.
ho navigato in rete un bel po... ho trovato expect che mi permette di inserire
passwd non interattivamente, ti faccio un esempio:
#!/usr/bin/expect
# $argv contiene tutti i parametri a riga di comando
set cmd $argv
# send_human occorre per l'opzione -h (human) di send
set send_human {.1 3 1 .05 2}
# Connessione automatizzata
# lancia il client ftp per la connessione al server localhost
spawn smbpasswd angelo
# si aspetta un prompt del tipo "login: "
expect "New SMB password: "
# invia lo username
send "angelo\n"
# etc, etc.
expect "Retype new SMB password: "
send -h "angelo\n"
#send -h "exit\n"
non è molto intuitivo lo script, cmq funziona anche se un po lento.
mi servirebbe ora automattizzare questo con i tanti utenti che ho da inserire.
sono a piu di metà lavoro ghgh, ci posso riuscire.
txn
ho scoperto altro...
da riga se do questo:
(echo angelo; echo angelo) | smbpasswd -U angelo -s
riesco a settare per l'utente angelo la passwd angelo.
ora non mi resta unire tutta la roba che ho postato sin'ora, almeno spero...
nel frattempo se avete idee :sofico:
ciaooo
Ma il file delle password di samba è criptato o sono criptate solo le password?
Perché se non è criptato e le vuoi tutte uguali, non puoi bypassare mksmbpasswd e scrivere solo il primo utente da terminale, poi guardi com'è codificata la password e per tutti gli altri la aggiungi secca, senza intervenire.
Quindi ti servirebbe uno script che prende gli utenti, li aggiunge al file di samba con la sintassi giusta e al momento di scrivere la password ci infili sempre la solita.
Se poi samba usasse lo stesso algoritmo di hashing del sistema (MD5 o SHA) non potresti anche prendere da /etc/shadow le password e buttarle in samba così ognuno ha già le sue?
Nota che ti sto parlando come uno che considera samba una black box, l'ho visto poco e formulo consigli ipotizzando alcune features di samba ;)
gurutech
27-10-2005, 14:43
ciao, anche se non è prettamente in topic ti segnalo che io uso debian e non c'è la possibilità di impostare la password di sistema passandola in uno script a passwd, mentre il passwd di redhat possiede questa possibilità, così ho creato un passwd-rh da installare su debian...
http://www.gurutech.it/debs/
ciao,
le passwd sono criptate nel formato seguente, es:
angelo:1002:0853EE6196F3B6A2E68AA26A841A86FA:557E82AC54FB6161FDFC23E3064155C9:[U ]:LCT-435F9ADC:,,,
e cosi via per ogni utente....
dunque:
nell'ultimo post ho trovato il modo, tramite stringa, di cambiare la pass senza intervento alcuno.
questo ha funzionato mettendo la passwd, in quel caso angelo, e l'user sempre angelo, nella stringa in questione.
trattandosi di variabili, credo che lavorando un po su uno script si riesca a fargli prendere gli utenti da un elenco e impostare le passwd nello stesso modo.
attendo vostri riscontri, mille tnx
ciao
ecco lo script funzionante:
#!/bin/bash
gawk -F: '{ print $1 }' /etc/passwd > testpasswd
for i in `cat /etc/samba/testpasswd`
do
echo ""
echo "*** inserire password per $i ***"
echo ""
(echo $i; echo $i) | smbpasswd -U $i -s
done
ovviamente assegno la stessa pass uguale all'user per ognuno.
questo non mi piace, lo fatto per testare, ora farò o meglio cercherò di
fare questo per garantire un minimo di sicurezza (veramente minimo):
prendere le prime 4 lettere di ogni users e aggiungerci le altre 4 rimanenti (passwd di 8 caratteri) con un suffisso tipo 2005 o 005! vediamo....
a dopo spero, ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.