PDA

View Full Version : automatizzare inserimento password


_YTS_
26-10-2005, 18:47
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...

_YTS_
27-10-2005, 11:51
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

_YTS_
27-10-2005, 12:25
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

pinok
27-10-2005, 14:21
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/

_YTS_
27-10-2005, 15:21
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

_YTS_
27-10-2005, 17:53
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