Spegnimento o riavvio come utente normale


17

Per eseguire il comando poweroffo rebootuno deve essere un superutente. Posso comunque eseguirlo come un normale utente? Semplicemente non voglio sudoe inserire la mia password ogni volta che riavvio o spegnimento.


2
La risposta dipende dal sistema init utilizzato dalla tua distribuzione ... Ad esempio, con systemduna logindsessione attiva puoi riavviare o spegnere senza privilegi elevati a condizione che nessun altro utente sia ancora connesso ...
jasonwryan

@jasonwryan Attualmente sto usando Ubuntu che non usa systemdper impostazione predefinita. Quindi vuoi dire che altre distribuzioni come Arch possono essere riavviate senza privilegi elavati?
Stormvirux,

Sì: secondo le condizioni nel mio primo commento.
Jasonwryan,

Risposte:


22

Ho modificato in /etc/sudoersmodo che tutti gli utenti del gruppo admin possano eseguire i seguenti comandi senza che sia richiesta una password.

sudo halt
sudo reboot
sudo poweroff

Devi solo aggiungere le seguenti righe a /etc/sudoers

## Admin user group is allowed to execute halt and reboot 
%admin ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff

e aggiungiti al gruppo di amministratori.

Se vuoi che solo un utente sia in grado di farlo, rimuovi %admine sostituiscilo con in usernamequesto modo

## user is allowed to execute halt and reboot 
stormvirux ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff

Potete trovare maggiori informazioni su /etc/sudoerscon man sudoerso la pagina di manuale in linea


4

Puoi anche creare un nuovo file sotto il /etc/sudoers.dnome desiderato (l'ho chiamato 'shutdown') e inserire le seguenti righe:

# Allows me to shutdown the system without a password

yourUserName ALL = NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff

Basta cambiare "yourUserName" per il TUO nome utente e aggiungere o rimuovere i comandi da usare, personalmente lo uso solo per shutdown. Una delle principali differenze nella creazione di un determinato file sudoers.dè che questo file sopravviverà agli aggiornamenti di sistema


1
Se si sceglie questo approccio, assicurarsi che /etc/sudoersabbia una #includedirettiva appropriata da cui leggere i file /etc/sudoers.d/.
patricktokeeffe,

2

Puoi farlo anche con un trucco con setuid. Non so se funzionerà su tutti i sistemi, perché a volte ignorano il bit setuid / setgid.

È possibile specificare un gruppo di utenti che possono eseguire il cambio di stato del sistema nel mio caso adm. Quindi aggiungere gli utenti appropriati a questo gruppo.

gpasswd -a $USER adm

Specifica le autorizzazioni:

chmod 4550 /usr/bin/reboot

ls -l l'outpus dovrebbe assomigliare a questo:

-r-sr-x--- 1 root adm 18928 Mar 13  2015 /usr/bin/reboot

Successivamente puoi semplicemente digitare:

reboot

1

La soluzione più semplice:

sudo echo $USER >> /etc/shutdown.allow

Quindi sei in grado di utilizzare uno di questi comandi:

shutdown -ah now   // halt
shutdown -ar now   // reboot

Secondo uomo arresto c'è -a opzione per uso non root:

Se shutdownviene chiamato con l' argomento -a (aggiungilo all'invocazione di shutdown in / etc / inittab ), controlla se è presente il file /etc/shutdown.allow . Quindi confronta i nomi di accesso in quel file con l'elenco delle persone che hanno effettuato l'accesso su una console virtuale ...

Funziona in Debian Linux. E c'è un limite per 32 nomi utente in /etc/shutdown.allow.


4
Nessuna opzione su Fedora, CentOS o RHEL.
fpmurphy

1
Anche questo non funziona per Ubuntu, almeno questo è quello che ottengo dai documenti. Sarebbe utile vedere se questa è una funzione solo Debian.
Raphael Ahrens,

Ancora non in Ubuntu (18.04) nel 2020 =}
tink
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.