Come implementare un "profilo utente" volatile


3

Voglio configurare una macchina Linux in modo tale che quando un determinato utente, chiamato studente , si disconnette, la sua directory / home viene cancellata e ripristinata.

Fondamentalmente voglio eseguire queste azioni quando l'utente si disconnette:

userdel student
rm -r /home/student
useradd -m student
echo student | passwd --stdin student

Esiste un modo più semplice di eliminare e ricreare l'utente?

Nota: l'obiettivo qui è cancellare il contenuto della home directory dell'utente e ripopolare la home directory dell'utente da / etc / skel. Immagino che sto solo cercando di aggirare i problemi di proprietà dei file che sorgono quando si copia / etc / skel su / home / student.

Edit: Che cosa devo fare è di imitare il modo che useradd -mcopia la roba da /etc/skelper /home/studente cambia il proprietario, il gruppo e le autorizzazioni. Come posso fare ciò che useradd -mfa senza dover eliminare e quindi ricreare l'utente?


Posta bloccata. Si prega di non ripristinare le modifiche apportate dai moderatori ai post.
BinaryMisfit,

Risposte:


5

Forse mi manca qualcosa, ma perché eliminare e ricreare l'utente, se tutto ciò che vuoi è pulire la home directory?

Non puoi semplicemente fare un

rsync -a --delete /etc/skel/ /home/student/

ogni volta che un utente si disconnette?

Forse anche uccidere tutti i processi utente se ne rimangono, ma questo è tutto.

AGGIORNAMENTO: per modificare il proprietario dei file, è sufficiente eseguire

chown -R student:student /home/student/*

dopo il rsync.

Dubito che le autorizzazioni debbano essere modificate, ma in tal caso, dovrai farlo su un file per file, qualcosa come

chmod +x /home/student/bin/*

Ciò preserva il proprietario, il gruppo e le autorizzazioni presenti su tutti i file in / etc / skel. Ciò causa problemi perché root possiede la maggior parte di quei file e, come tale, quando l'utente accede lui ei suoi processi non possiedono i file. Quando eseguo useradd -m, imposta il proprietario, il gruppo e le autorizzazioni in base alle esigenze per far funzionare effettivamente l'accesso.
undici81,

Vedi il mio aggiornamento È quello che volevi?
Il

Dovrò provare quell'aggiornamento chown più tardi oggi. Sembra molto promettente!
undici81,

itsadok: L'ho fatto funzionare con la linea rsync e la linea chown -R (meno l'ultima barra e l'asterisco) proprio come volevo. Non ho dovuto modificare nessuna delle autorizzazioni. Grazie mille!
undici81,

itsadok: Sembra che la riga rsync non copi le directory nascoste (quelle i cui nomi iniziano con un.) da / etc / skel in / home / student. Qualche idea?
undici81,

0

Taggato con "bash", quindi presumo che tu stia guardando un login da riga di comando, anziché una GUI

student@pc:~$ cat .bash_logout 
if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
cd ~
rm -r ~/* ~/.[a-zA-Z1-9]*
cp -r /etc/skel/* /etc/skel/.[a-zA-Z1-9]* .

Le prime 3 righe di cui sopra sono standard (almeno sulla mia macchina Ubuntu) e il resto non è stato testato. Questa route ha il vantaggio di non dover essere eseguita esclusivamente come root.


Solo che è anche taggato "gdm".
Dennis Williamson,

0

Preparazione:

sudo mkdir /home/clean-homes/
sudo tar zcvf /home/clean-homes/$user.tar.gz ~user

Non uso GDM e quindi dimentico il formato di /usr/share/xsessions/*.desktopquello che utilizza, ma sono semplici. Chiedi al tuo di invocare una sceneggiatura simile

#! /bin/sh
cd
mkdir .old
mv * .* .old
rm -rf .old &
tar zxpPf /home/clean-homes/$USER.tar.gz
exec gnome-session  # or whatever

In questo modo il nuovo utente fa tutto il lavoro per eliminare i vecchi file e ricreare i contenuti della home directory, all'accesso. Questa non è una soluzione, se si desidera che i vecchi file da fissati dal nuovo utente: in questo caso si dovrebbe creare più utenti [? Perché non lo fai], o consigliare alle persone di eseguire lo script 'clean-Logout', oppure - se hai persone bloccate nell'accesso con solo il tuo /usr/share/xsessions/*.desktops - riscrivi lo script sopra con percorsi assoluti e senza sfondo rm.

Non fare affidamento sugli utenti che svuotano le proprie directory al logout. Vedi: ctrl + alt + backspace pkill gnomee la potenza di un computer fisicamente accessibile.


0

Ubuntu 8.10 e versioni successive sono fornite di serie con l'opzione "Sessione ospite". Questo passa a un account ospite con tutti i soliti programmi e directory in uno stato vergine. Qualsiasi modifica apportata dal guest viene persa quando il guest si disconnette. In qualsiasi momento è possibile passare alla sessione normale semplicemente inserendo la password.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.