# [HOWTO] spegnere e riavviare anche da utente

## fctk

UPDATE: la versione più aggiornata di questo howto si trova qui

Premetto innanzitutto che questo howto non è completamente (anzi, quasi per nulla  :Laughing: ) frutto del sudore della mia fronte, bensì è una traduzione-miglioramento di una guida già esistente...

Lo scopo di questa guida è abbastanza chiaro: rendere possibile anche all'utente normale lo spegnimento e il riavvio del proprio computer. Questa guida è specialmente rivolta a coloro che non adoperano login manager quali GDM/KDM/XDM, bensì a coloro che sono soliti riavviare e spegnere la propria macchina da console.

Occorre come prima cosa installare sudo.

```
# emerge sudo
```

A questo punto si modifica il file di configurazione dello stesso semplicemente digitando:

```
# visudo
```

e aggiungendo le seguenti linee:

```
%shutdown ALL=(root) NOPASSWD: /sbin/reboot.sh

%shutdown ALL=(root) NOPASSWD: /sbin/halt.sh
```

Ora bisogna creare due file, reboot e halt, e collocarli in /usr/bin/.

Il contenuto del primo dovrà essere:

```
#! /bin/sh

sudo /sbin/reboot.sh $*
```

quello dell'altro, invece:

```
#! /bin/sh

sudo /sbin/halt.sh $*
```

A questo punto occorre digitare i seguenti comandi:

```
# cd /usr/bin/

# groupadd shutdown

# chgrp shutdown reboot halt

# chmod 755 reboot halt
```

Ora occorre creare altri due file:

Il primo è /sbin/reboot.sh. Il suo contenuto sarà:

```
#! /bin/sh

/sbin/shutdown -r 0
```

Il secondo è /sbin/halt.sh. Similmente, il suo contenuto sarà:

```
#! /bin/sh

/sbin/shutdown -h 0
```

Un altro paio di comandi:

```
# cd /sbin/

# chmod 744 reboot.sh halt.sh
```

Per concludere, bisogna modificare il file /etc/group e aggiungere la lista degli utenti ai quali si vuole permettere il riavvio e lo spegnimento della macchina:

```
...

shutdown:x:407:<utente1>,<utente2>,...,<utenten>...
```

Fatto!  :Cool:  Provare per credere...

Ah, dimenticavo! Per riavviare il computer basta ora dare il comando:

```
reboot
```

mentre per spegnerlo occorre invece scrivere:

```
halt
```

Last edited by fctk on Mon Sep 06, 2004 9:24 am; edited 3 times in total

----------

## fedeliallalinea

Ottimo howto

----------

## fctk

 *fedeliallalinea wrote:*   

> Ottimo howto

 

grazie!  :Embarassed: 

----------

## FonderiaDigitale

c'era un post recente a cui ho risposto in cui indicavo esattamente le stesse cose  :Smile: 

cmq buon riassunto.

----------

## unz

m'hai salvato, il rattoppo che avevo escogitato funzicava  volta sì e 7 no ... grosso!  :Very Happy: 

----------

## randomaze

Toh, ne é arrivato un'altro:

 *unz wrote:*   

> E' una questione di qualità ... decidersi di farla finita con qualcuno o qualcosa ... una formalità

 

Di questo passo gli utenti del forum si divideranno tra quelli che usano Apple capitanati da Shev e quelli che ascoltano i CCCP capitanati da fedeliallalinea  :Rolling Eyes: 

----------

## fedeliallalinea

 *randomaze wrote:*   

> Di questo passo gli utenti del forum si divideranno tra quelli che usano Apple capitanati da Shev e quelli che ascoltano i CCCP capitanati da fedeliallalinea 

 

ehehehe non mi ero accorto della firma  :Very Happy: 

----------

## cloc3

L'howto è molto bello, lo ho messo nei bookmark, perché mi insegna l'uso corretto di sudo.

Ma per spegner il computer, non è meglio premere il pulsante di start?

Con gli acpi, da console, esegue uno shutdown soft. ctrl-alt-canc, invece, fa il reboot.

----------

## Raffo

@randomaze: nn studio nn lavoro nn guardo la tv, nn vado al cinema nn faccio sport!   :Laughing: 

----------

## lan

ecco qua la mia soluzione, non necessita di sudo ma solo di pochi piccoli step:

```

# chmod +u /sbin/halt

# chmod +u /sbin/reboot

# ln -s /sbin/halt /bin/halt

# ln -s /sbin/reboot /bin/reboot

```

e così anche da utente normale potrete spegnere e riavviare il pc

ATTENZIONE l'atribuzione dei permessi +u è molto pericolosa in fatto di sicurezza, usatela con prudenza

Ciao a tutti

----------

## unz

Ho provato lo script dell'how-to, la prima volta è ito bene, poi mi ha iniziato a chiudere il sistema a mò di ghigliottina ... zak! ... il monitor e gli hds non riescono a stargli dietro ... 

ho sbagliato qualcosa?

----------

## fctk

 *cloc3 wrote:*   

> Ma per spegner il computer, non è meglio premere il pulsante di start?
> 
> Con gli acpi, da console, esegue uno shutdown soft. ctrl-alt-canc, invece, fa il reboot.

 

boh... non conosco il sistema degli acpi... cmq. effettivamente il ctrl-alt-canc fa il reboot anche da utente senza problemi (anche se non so se è la stessa cosa che digitare reboot, chiedo illuminazione su questo...)

----------

## fctk

 *unz wrote:*   

> Ho provato lo script dell'how-to, la prima volta è ito bene, poi mi ha iniziato a chiudere il sistema a mò di ghigliottina ... zak! ... il monitor e gli hds non riescono a stargli dietro ... 
> 
> ho sbagliato qualcosa?

 

in che senso "a mo' di ghigliottina"? il mio monitor si "spegne" (il pulsante resta comunque giallo e necessita di manuale pressione) solo al termine della procedura di halt e gli hard disk pure...

----------

## unz

per farti un esempio pratico ... situazione di schermata blu su windows, però col monitor nero ... sai come se tutto fosse ancora acceso ... con il normale halt da riga di comando ciò non succede. Comunque in 2 secondi netti spegne tutto, mai provato uno "spengimento" così celere  :Very Happy: 

----------

## silian87

Volendo per spegnere anche da utente normale basterebbe cambiare la riga in /etc/inittab

```
# What to do at the "Three Finger Salute".

ca:12345:ctrlaltdel:/sbin/shutdown -r now

```

con:

```
# What to do at the "Three Finger Salute".

ca:12345:ctrlaltdel:/sbin/shutdown -h now

```

----------

## fctk

 *unz wrote:*   

> per farti un esempio pratico ... situazione di schermata blu su windows, però col monitor nero ... sai come se tutto fosse ancora acceso ... con il normale halt da riga di comando ciò non succede. Comunque in 2 secondi netti spegne tutto, mai provato uno "spengimento" così celere 

 

boh... mi sembra strano... con la mia guida il comando che viene utilizzato per spegnere la macchina è shutdown -h 0 (anche se, per eseguirlo, occorre digitare "halt")... prova a lanciarlo per vedere se l'effetto è lo stesso

----------

## fedeliallalinea

 *lan wrote:*   

> e così anche da utente normale potrete spegnere e riavviare il pc
> 
> ATTENZIONE l'atribuzione dei permessi +u è molto pericolosa in fatto di sicurezza, usatela con prudenza

 

La soluzione sudo mi pare molto meglio e molto piu' sicura

----------

## unz

mi scuso con l'autore dell'how-to , il problema era dovuto alle mani piccionate che mi ritrovo ... dopo aver creato i bottoncini di reboot e di spegnizione ho inventato di sana pianta il percorso agli script, facendo partire altro ... funzia tutto perfettamente  :Wink: 

----------

## lan

 *fedeliallalinea wrote:*   

>  *lan wrote:*   e così anche da utente normale potrete spegnere e riavviare il pc
> 
> ATTENZIONE l'atribuzione dei permessi +u è molto pericolosa in fatto di sicurezza, usatela con prudenza 
> 
> La soluzione sudo mi pare molto meglio e molto piu' sicura

 

Si è più sicura, ma se state sul pc di casa o su una normalissima workstation questa è una soluzione semplice, funzionale anche se come già detto insicura, poichè non si può limitare a utenti di spegnere il pc, o tutti o root

Ciao

----------

## fedeliallalinea

 *lan wrote:*   

> Si è più sicura, ma se state sul pc di casa o su una normalissima workstation questa è una soluzione semplice, 

 

Non che sia particolarmente complicata quella con sudo  :Very Happy: 

----------

## nick_spacca

 *fedeliallalinea wrote:*   

>  *lan wrote:*   e così anche da utente normale potrete spegnere e riavviare il pc
> 
> ATTENZIONE l'atribuzione dei permessi +u è molto pericolosa in fatto di sicurezza, usatela con prudenza 
> 
> La soluzione sudo mi pare molto meglio e molto piu' sicura

 

Scusate la mia ignoranza, ma non e' possibile creare un nuovo gruppo utenti ed assegnargli i comandi halt/reboot gia esistenti senza interpellare sudo???

Non che con sudo sia complicato, per semplice curiosita...  :Razz: 

----------

## fedeliallalinea

 *nick_spacca wrote:*   

> Scusate la mia ignoranza, ma non e' possibile creare un nuovo gruppo utenti ed assegnargli i comandi halt/reboot gia esistenti senza interpellare sudo???

 

Perche' ad ogni utente creato dovresti metterlo in quel gruppo... poi personalmente non cambio i permessi di un file (se non mio)

----------

## fedeliallalinea

Aggiunto nei post utilissimi

----------

## FonderiaDigitale

 *nick_spacca wrote:*   

> 
> 
> Scusate la mia ignoranza, ma non e' possibile creare un nuovo gruppo utenti ed assegnargli i comandi halt/reboot gia esistenti senza interpellare sudo???
> 
> Non che con sudo sia complicato, per semplice curiosita... 

 

eh, halt va a uccidere dei processi fatti partire con UID 0, cioe' root.

pensi che un utente possa killare i processi del superuser senza usare sudo?

----------

## nick_spacca

 *FonderiaDigitale wrote:*   

>  *nick_spacca wrote:*   
> 
> Scusate la mia ignoranza, ma non e' possibile creare un nuovo gruppo utenti ed assegnargli i comandi halt/reboot gia esistenti senza interpellare sudo???
> 
> Non che con sudo sia complicato, per semplice curiosita...  
> ...

 

 :Embarassed:  vero,non ci avevo pensato...quindi secondo quanto dici, su altre distro(leggi RH9) l'installazione di default mette anche SUDO gia configurato???  :Question: 

Mi sembra un po strano...

----------

## MonsterMord

Ho seguito passo passo l'ottimo how-to ma ho un leggero problema: gentoo non mi fa il reboot.

Il comando "shutdown -r now" produce lo stesso effetto di "shutdown -h now".

Poi non capisco questa cosa:

```

file /sbin/halt

/sbin/halt: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped

ls -l /sbin/reboot

lrwxrwxrwx  1 root root 4 lug 21 15:17 /sbin/reboot -> halt

```

Come cavlo fa ad accorgersi se voglio un reboot o uno shutdown?

In questo caso non dovrebbe fare differenza e invece funziona, nell'altro (shutdown -h -r) dovrebbe fare differenza e non la fa.

Sono perplesso.  :Rolling Eyes: 

----------

## fctk

mmh... dopo aver seguito la guida per fare il reboot dovresti dare semplicemente "reboot" e non shutdown -r now, e per spegnere il computer dovresti scrivere "halt" e non shutdown -h now... per quanto riguarda l'output degli altri due comandi che hai dato (file ed ls) posso dire che è identico a quello che ottengo io, quindi il problema non dovrebbe essere quello.

----------

## n3m0

 *MonsterMord wrote:*   

> Come cavlo fa ad accorgersi se voglio un reboot o uno shutdown?

 

Se ne accorge in un modo molto semplice: 

```
if (argv[0] == "halt") {

   halt();

}

if (argv[0] == "reboot") {

{

   reboot();

}
```

NOTA: ovviamente quello sopra non è il sorgente di halt, ma il test per la discriminazione del tipo di operazione è sicuramente quello (a meno di uno strcmp che mi rompevo di mettere).

----------

## fctk

aggiunta la traduzione in inglese!  :Cool: 

----------

## silverfix

http://ildp.pluto.it/doc-it/CTRL_ALT_END-microHowTo.html

così da avere con ctrl+alt+canc un reboot e con ctrl+alt+end uno shutdown...

lo uso praticamente da rh7.2   :Cool: 

----------

## pascalbrax

mitico!

----------

## OKreZ

 *nick_spacca wrote:*   

>  *FonderiaDigitale wrote:*   
> 
> eh, halt va a uccidere dei processi fatti partire con UID 0, cioe' root.
> 
> pensi che un utente possa killare i processi del superuser senza usare sudo? 
> ...

 

Io credo che impostino /sbin/halt con il bit UID settato, e l'esecuzione da parte degli utenti normali. In questo modo un utente normale puo' eseguire il comando come se lo eseguisse root. Io ho creato un gruppo halt e settato /sbin/halt in questo modo:

```
okrez@gloglotto okrez $ ls -l /sbin/halt 

-rwsr-x---  1 root halt 18688 Jul 10 10:49 /sbin/halt
```

ed aggiunto il mio utente al gruppo halt

----------

## Taglia

ho seguito l'howto ed ho implementato gli scripts. Però c'è un problema: se lancio questi comandi (halt e reboot) da xterm di xfce4, funzionano xò prima del riavvio/spegnimento la modalita grafica si "sputtana" (nel senso che l'immagine si incasina tipo "rumore di fondo sul segnale"), cosa che non mi faceva andando come root e lanciando i comandi manuali. Forse dipende dal fatto che il server X viene chiuso "brutalmente" ?

----------

## fctk

probabile. comunque io di solito chiudo X normalmente e poi do i comandi da console pura, non da xterm.

----------

## Taglia

Beh volendo si potrebbe modificare lo script per dirgli 

"se c'è un server X attivo chiudilo aspetta che si chiuda correttamente e poi reboot/halt" ??

Non sono un esperto (anzi, sono un n00b totale   :Very Happy:  ) di bash però potrei provarci se mi dici che è fattibile   :Very Happy: 

----------

## fctk

beh si penso proprio che sia fattibile... dovresti riuscirci semplicemente aggiungendo delle righe all'inizio di halt.sh e di reboot.sh.

----------

## Taglia

Mò ci provo se riesco posto qua   :Rolling Eyes: 

----------

## michele26x1

salve a tutti...

come mai secondo voi dopo aver seguito scrupolosamente l'howto al posto di riavviarmi o spegnere il computer il sistema si blocca subito dopo aver dato

```
no more processes in this runlevel
```

in finale e rimane lo schermo acceso?

baciamo le mani

----------

## Sasdo

 *michele26x1 wrote:*   

> salve a tutti...
> 
> come mai secondo voi dopo aver seguito scrupolosamente l'howto al posto di riavviarmi o spegnere il computer il sistema si blocca subito dopo aver dato
> 
> ```
> ...

 

Anche a me fa uguale... effettivamente lo ha cominciato a fare dopo che ho provato l'init-ng ... credo sia dovuto a quello..

----------

## thewally

Grande HOWTO, bravo  :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy: 

IMHO: continuo ancora ad avere incertezze sulla sicurezza di sudo.... Dalla mia esperienza su Slackware, credo che mantenere gli utenti (anche su macchine a singolo utente) e root scissi il piu' possibile, sia la cosa migliore  :Cool: 

----------

## Ic3M4n

 *Quote:*   

> ome mai secondo voi dopo aver seguito scrupolosamente l'howto al posto di riavviarmi o spegnere il computer il sistema si blocca subito dopo aver dato
> 
> Codice:
> 
> no more processes in this runlevel
> ...

 

qualche giorno fa è stata postata la soluzione mi sembra da randomaze. ovvero riemerge 

```
baselayout
```

----------

## neon

 *nick_spacca wrote:*   

>   vero,non ci avevo pensato...quindi secondo quanto dici, su altre distro(leggi RH9) l'installazione di default mette anche SUDO gia configurato??? 
> 
> Mi sembra un po strano...

 

No, anzi se prendi per esempio Ubuntu ha l'account di root disabilitato e tutte le operazioni che richiedono i privilegi del superuser vengono gestite da sudo.

----------

## gutter

 *nick_spacca wrote:*   

> 
> 
> Mi sembra un po strano...

 

Non ci vedo niente di strano.

----------

## michele26x1

 *Ic3M4n wrote:*   

>  *Quote:*   ome mai secondo voi dopo aver seguito scrupolosamente l'howto al posto di riavviarmi o spegnere il computer il sistema si blocca subito dopo aver dato
> 
> Codice:
> 
> no more processes in this runlevel
> ...

 

grazie era quello...

----------

## bandreabis

Ho seguito la guida passo passo, ma non funziona. Da user non riesco a riavviare/spegnere il PC, mi chiede la password (immagino voglia quella di root) ma non me la accetta, dice che è errata.

????

----------

## bandreabis

Risolto:

ho decommentato la riga

```
# Same thing without a password

 %wheel ALL=(ALL)       NOPASSWD: ALL
```

e ora funziona e senza chiedere la password.

In fondo era quello che volevo, riavviare senza dover digitare la password.... ma come mai prima non funzionava?

Andrea

----------

## makami

Infatti è fatto apposta per poter riavviare da utente senza dover digitare la pwd di root.

Non no perchè non funzionasse prima, se hai creato gli script in modo corretto forse avevi sbagliato aggiungendo l'utente al gruppo shutdown.

E' solo una supposizione.

----------

## DaVe&OpenMOsix

 *randomaze wrote:*   

> Di questo passo gli utenti del forum si divideranno tra quelli che usano Apple capitanati da Shev e quelli che ascoltano i CCCP capitanati da fedeliallalinea 

 

e io che appartengo a entrambi gli insiemi???

scusate il reply ot...

ciao DV

----------

## gutter

 *DaVe&OpenMOsix wrote:*   

> 
> 
> e io che appartengo a entrambi gli insiemi???
> 
> 

 

L'eccezione che conferma la regola  :Wink: 

----------

## GiRa

 *bandreabis wrote:*   

> Risolto:
> 
> ho decommentato la riga
> 
> ```
> ...

 

Pazzo! Gli utenti appartenendi al gruppo wheel possono eseguire tutti i comandi da tutte le macchine senza password!

----------

## =DvD=

Non ho seguito tutta la discussione, ma con acpid non è possibile spengere la macchina col pusante sul case? (come su windows, lo pigi e parte lo shutdown...)

----------

## gaffiere

 *=DvD= wrote:*   

> ma con acpid non è possibile spengere la macchina col pusante sul case? (come su windows, lo pigi e parte lo shutdown...)

  certo che si puo'  :Smile: 

see ya

----------

## fctk

dopo aver letto questo howto: http://www.gentoo.org/doc/en/sudo-guide.xml ho pensato di alleggerire un po' la procedura per spegnere/riavviare da utente... in pratica:

```
# emerge -av app-admin/sudo

# visudo
```

e aggiungiamo:

```
%users  ALL = NOPASSWD: /sbin/shutdown
```

a questo punto basta creare degli alias semplici semplici:

```
# nano -w ~/.bashrc

alias halt='shutdown -h now'

alias reboot='shutdown -r now'

$ nano -w ~/.bashrc:

alias halt='sudo shutdown -h now'

alias reboot='sudo shutdown -r now'
```

non l'ho testato molto, ma sembra funzionare...

che ve ne pare?

----------

## unz

Ricordo a chi ha >=gnome-2.10 può farlo senza impicci vari.

Desktop->Preferenze->Sessioni->Selezionare "Confermare al termine della sessione"

Poi eseguite il logout come al solito

----------

## fraido

 *fedeliallalinea wrote:*   

>  *lan wrote:*   e così anche da utente normale potrete spegnere e riavviare il pc
> 
> ATTENZIONE l'atribuzione dei permessi +u è molto pericolosa in fatto di sicurezza, usatela con prudenza 
> 
> La soluzione sudo mi pare molto meglio e molto piu' sicura

 

Non capisco perchè sudo dovrebbe essere più sicuro di chmod +u....

Alla fine sudo può essere considerato più "flessibile" di chmod, questo è vero.

Ad esempio invece di quanto scritto nell'howto si può impostare in modo tale che richieda la password:

```
%shutdown ALL= /sbin/reboot.sh

....

```

Ma dal punto di vista della sicurezza è la stessa identica cosa...(per lo meno così com'è stato scritto nell'howto); ovvero da il permesso a tutti gli utenti di dare il comando halt/reboot esattamente come si fa facendo chmod +u e questo secondo sistema non impone di installarsi del software il quale a sua volta può avere dei bug e quindi potenziali buchi di sicurezza!  :Wink: 

Infatti sudo è un tool sconsigliato, in quanto può creare buchi grandi come case. 

Questo è quello che so io....per caso mi sbaglio?

fraido

----------

