Di default, su un'installazione base di un server linux VPS, abbiamo quasi sempre un unico utente, il root.
Questo account deve essere utilizzato solo per le operazioni straordinarie e non nel quotidiano, dove vogliamo assegnare diverse responsabilità a più utenti e vogliamo sapere chi ha effettuato cosa, altrimenti nei file di log sarà sempre il root ad aver effettuato questa o quella modifica e l'analisi di un eventuale problema sarà pressochè improbabile.
Se siamo più di una persona a dover gestire il server possiamo utilizzare uno script che generi in automatico le utenze con una password preimpostata contenute in un file di testo, e successivamente aggiungere gli utenti creati al gruppo degli amministratori, per permettere di lanciare comandi per installare, aggiornare e avviare/fermare i servizi erogati dal server.
In giro per la rete (http://www.unix.com/shell-programming-and-scripting/252041-adding-users-txt-fille.html) mi sono imbattuto in questo prezioso script che può semplificare il lavoro di creazione di utenze multiple .
Da terminale dunque, digitare
touch userfiletouch adduser.sh Ora in userfile aggiungiamo i nomi degli utenti e le password, separando i valori con una virgola.
vi userfileutente1,password
utente2,password
utente3,password
utente4,password
utente5,password
E cosi via...magari utilizziamo qualcosa di più robusto al posto di password e chiediamo ai nuovi utenti di cambiarla al primo accesso.
Ora passiamo allo script vero e proprio, che andrà a leggere il contenuto del file degli utenti appena popolato, verifica l'eventuale presenza delle utenze indicate e le inserisce nel sistema:
vi adduser.sh#!/bin/bash
if [ $# -lt 1 ]
then
echo "Usage : $0 userfile"
exit
fi
if [ $(id -u) -eq 0 ]; then
while IFS=, read username password; do
if egrep "^$username" /etc/passwd >/dev/null; then
echo "$username exists!"
else
password=$(perl -e 'print crypt($ARGV[0], "password")' $password)
if useradd -m -p "$password" "$username" >/dev/null; then
echo "User '$username' has been added to system!"
else
echo "Failed to add user '$username'!"
fi
fi
done <"$@"
else
echo "Only root may add a user to the system"
exit
fi
Ora che abbiamo completato sia il file degli utenti che lo script vero e proprio possiamo assegnare i permessi allo script per essere eseguito e lanciarlo:
chmod a+x adduser.sh./adduser.sh userfileIl sistema ci risponderà con un messaggio positivo, in caso di errore verificare cosa non è andato bene (mancanza permessi di esecuzione, non siamo root o copia ed incolla da Windows a Linux ed errore di bad interpreter...).
Proprio per quest'ultimo tipo di errore, per chi effettua un copia ed incolla da un file di testo Windows al terminale Linux (magari da Notepad++ alla shell, dove invio inserisce ^m al posto dell'interruzione di linea Unix che termina con \n), in caso di errore può essere necessario dare una "ripulita" allo script eliminando caratteri inseriti in fase di copia:
sed -i -e 's/\r$//' addusers.shOra è possibile lanciare lo script.
Ultima operazione, quella che permette agli utenti di poter effettuare installazioni/disinstallazioni, stop o start dei servizi, e cosi via, è quella di assegnare le utenze al gruppo sudoers, inserendole nel file /etc/sudoers.
Creaimo un altro file con estensione sh ed inseriamo all'interno le utenze create in precedenza:
touch enablesudoers.shvi enablesudoers.sh#!/bin/bash
# Run me with superuser privileges
echo 'utente1 ALL=(ALL:ALL) ALL' >> /etc/sudoers
echo 'utente2 ALL=(ALL:ALL) ALL' >> /etc/sudoers
echo 'utente3 ALL=(ALL:ALL) ALL' >> /etc/sudoers
echo 'utente4 ALL=(ALL:ALL) ALL' >> /etc/sudoers
echo 'utente5 ALL=(ALL:ALL) ALL' >> /etc/sudoers
Rendiamo eseguibile lo script ed eseguiamolo per abilitare gli utenti alle funzioni di amministrazione:
chmod a+x enablesudoers.sh./enablesudoers.shOra i nostri utenti possono effettuare tutte le operazioni di amministrazione utilizzando il comando sudo.
arulajeh.id Situs Berita Terbaru Dan Terbaik

Tambahkan Komentar