nuovoutente.sh
febbraio 4th, 2011sapete tutti del mio server pdc fatto con debian e samba che, tra l’altro, vavavuma.
sapete anche che sono un po’ pigro e, mentre configuravo il tutto, non ho avuto voglia di implementare ldap, il coso centralizzato per gestire gli utenti in maniera più performante e rapida.
tant’è che, per funzionare, samba ha bisogno che ci sia un determinato utente sia come utente linux che come utente samba (ldap viene usato per evitare questo, a cui possono attacarsi una marea di altre cose) e quindi, ogni volta che si aggiunge un utente bisogna aggiungerlo a mano su linux e su samba, con due comandi diversi: per un totale di 4, dico 4, inserimento di password (perchè come è noto tu inserisci la password e te la richiede per conferma). se è solo un utente va bene, ma quando devi immettere in maniera seriale, per dire, decine di utente comincia a essere un po’ una rottura, per cui ho fatto questo comodo script:
#!/bin/bash
while :
do
clear
echo “[Menu]”
echo “[n] nuovo utente”
echo “[c] nuovo utente per classe”
echo “[e] esci”
read scelta
clear
if [ "$scelta" == 'n' ]; then
echo “Username:”
read username
echo “Password:”
read password
useradd -d /dev/null -s /dev/null -p $password $username
echo -ne “$passwordn$passwordn” | smbpasswd -a -s $username
echo “Classe:”
read classe
mkdir /home/dati/studenti/$classe
mkdir /home/dati/studenti/$classe/$username
chown $username /home/dati/studenti/$classe/$username
chgrp $username /home/dati/studenti/$classe/$username
chmod 700 /home/dati/studenti/$classe/$username
elif [ "$scelta" == 'c' ]; then
echo “Username:”
read username
echo “Password:”
read password
useradd -d /dev/null -s /dev/null -p $password $username
echo -ne “$passwordn$passwordn” | smbpasswd -a -s $username
mkdir /home/dati/studenti/$username
chown $username /home/dati/studenti/$username
chgrp $username /home/dati/studenti/$username
chmod 700 /home/dati/studenti/$username
elif [ "$scelta" == 'e' ]; then
exit
fi
done
ovviamente è valido solo per il mio sistema visti i percorsi delle home degli utenti
ora la cosa da notare è la creazione dell’utente del sistema il quale richiede, ad useradd il passaggio della password già cryptata. ecco, sono stato una mattina intera a cercare di capire come venisse cryptata, ho trovato anche il comando per cryptarla usando l’hash giusto ma, rimane ancora un mistero, non ho capito come mai non corrispondesse a quella dentro /etc/shadow ma ho notato, per puro caso, che l’importante è che venga impostata nella maniera giusta quando si aggiunge l’utente a samba.
visto che comunque poi gli utenti di sistema non hanno la home e la shell impostata su /dev/null ho detto “chissenefrega, m’interessa solo di samba”
un altro “problema” è che la password, quando la inserisci, viene comunque visualizzata sul monitor e non ci sono gli asterischi, e anche in questo caso “chissenefrega”. anzi, è una feature visto che hai il riscontro visivo di averla inserita in maniera corretta, invece di doverla inserirla una seconda volta per conferma
quindi questo script funziona ma non in maniera impeccabile, diciamo che è un hack

