#howto - Creare un utente Guest su Linux
Se condividete il pc con utenti occasionali come familiari, colleghi o amici potrebbe essere un’ ottima idea creare un utente Guest con una home temporanea.
Creazione di un utente
Innanzitutto creiamo il nostro utente con il comando useradd:
useradd -m -g users -G video,audio,network,disk,input -s /bin/bash guest
Per i più curiosi:
-m
sta per “crea la cartella home dell’utente”;-g
sta per “imposta gruppo principale del utente con il nome che segue”, (in questo caso il gruppo è appuntousers
);-G
sta per “aggiungi agli altri gruppi”, quindi una lista di gruppi;-s
indica “imposta il programma che segue come shell per l’utente”, seguendo, quindi, il percorso della shell bash:guest
è il nome dell’utente;
Montare una directory in RAM all’avvio
In generale, per montare una directory in RAM, si usa il filesystem speciale tmpfs
, mentre per montare una partizione all’avvio si usa il file /etc/fstab
.
Unendo le due informazioni, si procede montando all’avvio una cartella in RAM, modificando il file di cui sopra, aggiungendo la linea seguente, dopo l’ultima riga:
tmpfs /home/guest tmpfs defaults,noatime,uid=guest,gid=users,mode=700,size=1G 0 0
Nello specifico, si sta chiedendo che la dimensione sia massimo di 1Gb
. Questo valore potrebbe anche essere inferiore, scrivendo, ad esempio, 512M
, ma ricordate che anche solo aprire un browser potrebbe consumare rapidamente la memoria quindi non siate troppo stringati nella scelta, poichè tutti i dati verranno cancellati ogni riavvio, liberando così dell’altro spazio.
NOTA :
la size specifica il massimo uso che si potrà fare di quello spazio, quindi dormite sonni tranquilli poiché se solo montato ma non utilizzato, quello spazio non avrà alcun peso in memoria.
Con le opzioni uid e gid si specifica a chi appartiene una determinata cartella, in termini di utente (uid) e gruppo (gid), per cui, se il vostro utente ospite si chiama in un altro modo dovrete modificare il valore dopo uid
.
Test del file fstab
Mai fare modifiche ad un fstab e riavviare senza testarlo, perché potrebbe costarci l’avvio del sistema!
Quindi testatelo con il comando:
mount -a
Se tutto è andato a buon fine allora non avrete alcun output, altrimenti cancellate la riga che avete aggiunto in precedenza e cercate supporto da qualcuno che, in materia, è più ferrato di voi.
Password
Normalmente gli utenti hanno una propria password, perciò il mio consiglio è quello di impostare per l’utente ospite una password semplice come “guest” con il comando :
passwd guest
Sostituendo, eventualmente, a “guest” il nome dell’utente di interesse.
Tuttavia, sono sicuro che in molti preferiranno creare un utente senza alcuna password, poiché più comodo all’atto pratico, per un utente temporaneo. In tal caso basta digitare:
passwd -d guest
Questo comando elimina la password di guest, permettendo quindi ad alcuni sistemi di fare l’accesso senza password. Attenzione però, non tutti i sistemi supportano questo comportamento!
Eseguire uno script all’avvio con home temporanea
Con una partizione di home temporanea non è possibile eseguire uno script al login, oppure all’avvio di un terminale, poiché le proprie cartelle non esistono fino al momento in cui l’utente effettua l’ingresso nel sistema. Come fare quindi?
Sostituire “bashrc”
Per sostituire il bashrc si può agire sul file /etc/profile aggiungendo questo if:
if [[ $USER = "guest" ]]; then
#qui le istruzioni
fi
così facendo quel blocco di istruzioni verrà eseguito solo se l’utente corrente è guest
.
Sostituire “.autostart”
Un’altra cartella utente molto importante è autostart, che contiene una lista di file launcher (.desktop
) che possono avviare programmi appena si effettua il login.
Ecco come ovviare alla sua mancanza:
Innanzitutto creiamo un nuovo script di sistema /usr/bin/runifguest
:
if [[ $USER = "guest" ]]; then
$*
else
echo "non sei guest"
fi
E diamo il comando
chmod +x /usr/bin/runifguest
Per creare il nostro launcher useremo la directory globale /etc/xdg/autostart
. Quindi creiamo il nostro file .desktop (supponiamo /etc/xdg/autostart/nomefile.desktop
)
[Desktop Entry]
Name=programma per guest
Exec=sh -c "runifguest nomeprogramma"
Type=Application
E rendiamolo avviabile
chmod +x /etc/xdg/autostart/nomefile.desktop
Effettuare l’accesso con “su”
Normalmente scrivendo
su nomeutente
Si può, tramite terminale, fare accesso su un altro utente. Tuttavia se l’utente non ha la password il comando fallisce, perciò, un’alternativa nel caso di utente “guest”, ma senza password, potrebbe essere:
sudo su guest
oppure
su -c "su guest"
Nel primo caso useremo la password del nostro utente amministratore, mentre, nel secondo caso, la password dell’utente root
.