View Full Version : Limitare possibilita' spegnimento macchina
Sulla macchina in firma ho creato 3 utenti diversi e fin qui tutto ok; ora pero' vorrei che solo uno di loro abbia la possibilita' di spegnere la macchina (onde evitare danni): come posso fare?
cosa intendi per spengere, se preme il pulsante di accensione o stacca la corrente c'è poco da fare.
vampirodolce1
20-01-2010, 07:29
man shutdown
Nel file dell'help trovi la nota sul file /etc/shutdown.allow:
shutdown can be called from init(8) when the magic keys CTRL-ALT-DEL are pressed, by creating an appropriate entry in /etc/inittab. This means that everyone who has physical access to the console keyboard can shut the system down. To prevent this, shutdown can check to see if an authorized user is logged in on one of the virtual consoles. If shutdown is called with the -a argument (add this to the invocation of shutdown in /etc/inittab), it checks to see if the file /etc/shutdown.allow is present. It then compares the login names in that file with the list of people that are logged in on a virtual console (from /var/run/utmp). Only if one of those authorized users or root is logged in, it will proceed. Otherwise it will write the message
shutdown: no authorized users logged in
to the (physical) system console. The format of /etc/shutdown.allow is one user name per line. Empty lines and comment lines (prefixed by a #) are allowed. Currently there is a limit of 32 users in this file.
Note that if /etc/shutdown.allow is not present, the -a argument is ignored.
cosa intendi per spengere, se preme il pulsante di accensione o stacca la corrente c'è poco da fare.
questo lo so, infatti ho gia' provveduto a spostare il tasto fisicamente all'interno del case :D
man shutdown
Nel file dell'help trovi la nota sul file /etc/shutdown.allow:
da quel che mi sembra di capire dalle pagine di man parrebbe che sia sufficiente un utente loggato ed abilitato allo shutdown per permettere a qualunque altro utente lo spegimento della macchina :fagiano:
questo per me e' un po' inutile visto che il mio utente e' sempre loggato e vorrei che fosse l'unico ad avere i privilegi di shutdown
oppure nego i permessi a tutti e quando mi serve spengo io la macchina da root... che dite potrebbe funzionare?
Gimli[2BV!2B]
20-01-2010, 20:26
Sistema con su o sudo? Se gli altri utenti sono sudoers non si può impedire granché... (http://serverfault.com/questions/36759/editing-sudoers-file-to-restrict-a-users-commands)
La morte sua sarebbe SELinux.
Qui è indicato come disattivare i punti di più semplice accesso per invocarlo. (http://embraceubuntu.com/2006/03/20/disable-shutdown-for-normal-users/)
vampirodolce1
21-01-2010, 07:22
Ti e' sfuggito qualcosa, la pagina man dice che possono fare lo shutdown solo gli utenti loggati e AUTORIZZATI all'operazione.
Altri utenti non autorizzati non possono spegnere la macchina in alcun modo.
;30535858']Sistema con su o sudo? Se gli altri utenti sono sudoers non si può impedire granché... (http://serverfault.com/questions/36759/editing-sudoers-file-to-restrict-a-users-commands)
sistema rigorosamente su
La morte sua sarebbe SELinux.
eh pero' mi sempra un po' esagerato :stordita:
Qui è indicato come disattivare i punti di più semplice accesso per invocarlo. (http://embraceubuntu.com/2006/03/20/disable-shutdown-for-normal-users/)
mi pare che sia una soluzione un po' "sporca"
Ti e' sfuggito qualcosa, la pagina man dice che possono fare lo shutdown solo gli utenti loggati e AUTORIZZATI all'operazione.
Altri utenti non autorizzati non possono spegnere la macchina in alcun modo.
A me sembra un po' ambigua questa frase:
Only if one of those authorized users or root is logged in, it will proceed.
Comunque tanto meglio; faccio delle prove e vediamo come si comporta :D
PS @ Gimli:
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) :asd:
Gimli[2BV!2B]
23-01-2010, 14:20
Concordo che SELinux per fare solo questa cosa sia leggermente :stordita: esagerato. Però lo farebbe bene!
I punti elencati li devi attuare, essendo un sistema su dovrebbero essere sufficienti per impedire agli utenti normali di eseguire shutdown/halt/telinit.
Tutti i comandi di spegnimento sono in sbin e possono essere lanciati solo da amministratori o da processi con diritti amministrativi, come gdm, kdm, init con Ctrl Alt Canc, ecc...
P.S. ah, anch'io il man shutdown l'ho capito come te... se fai delle prove illustraci il risultato.
Allora, questo e' quanto:
In /etc/inittab per il comando shutdown ho:
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
quindi l'opzione per il controllo degli utenti loggati era gia' abilitata.
Di conseguenza ho creato il file /etc/shutdown.allow e l'ho lasciato in bianco, in questo modo lo shutdown dovrebbe essere consentito solo a root.
Eh, dovrebbe, infatti un CTRL-ALT-DEL dopo sono riuscito a spegnere la macchina da utente normale :fagiano:
Dove ho sbagliato?
Mi auto-rispondo: tutto cio' che ho scritto al post precedente e' valido solo se si e' collegati tramite terminale e non in ambiente grafico :ciapet:
Gimli[2BV!2B]
23-01-2010, 16:32
Sì, quel Ctrl Alt Canc viene intercettato solo da terminali virtuali, sotto X viene riconosciuto solo se è gestito dall'ambiente grafico avviato.
In Kde mi propone una schermata di scelta uscita/spegnimento/riavvio.
Quindi non hai dovuto aggiungere tu il -a, giusto?
In caso di modifiche a quel file per applicarle immediatamente è necessario il comando init q
Il file /etc/shutdown.allow contiene almeno un a capo/newline?
Il comando users fa il parse dello stesso file usato da shutdown (/var/run/utmp) e ti mostra gli utenti loggati.
I terminali root aperti con su non compaiono. Solo se fai login con root oppure, probabilmente, se avvii una sessione X con utente root, lo vedresti comparire nell'elenco.
Dopo varie prove ho concluso che cio' su cui devo intervenire e' la configurazione di kdm, infatti e' quest'ultimo a gestire la finestrella con le tre opzioni per lo spegnimento, riavvio e logout della macchina in ambiente grafico.
Quindi: "kcontrol -> login manager -> shutsown -> allow shutdown -> local"
ho impostato su "only root".
In questo modo quando un utente normale tenta di spegnere o riavviare la macchina fa il logout e poi gli viene chiesta la password di root per procedere, altrimenti ritorna alla schermata di login.
Naturalmente questo vale per tutti gli utenti, quindi diciamo che non ho raggiunto appieno il risultato, ma per il momento mi va bene come soluzione :p .
In aggiunta: nel pannello di configurazione di kdm se imposto "/sbin/shutdown" al posto di "/sbin/halt" il sistema fa il logout, ma poi in modalita' testuale mi avverte che non ci sono utenti abilitati allo shutdown e ritorna al login (sempre testuale).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.