debian
[Top] [All Lists]

[debian] Re: reboot & poweroff

To: debian@ml.oltrelinux.com, linux@ml.oltrelinux.com
Subject: [debian] Re: reboot & poweroff
From: Luca Gibelli <l.gibelli -at- oltrelinux.com>
Date: Sat, 7 Dec 2002 22:03:59 +0100
Delivered-to: archive@oltrelinux.com
Delivered-to: mailing list debian@ml.oltrelinux.com
Delivered-to: moderator for debian@ml.oltrelinux.com
In-reply-to: <200212072046.35615.groova@tiscali.it>
List-help: <mailto:debian-help@ml.oltrelinux.com>
List-post: <mailto:debian@ml.oltrelinux.com>
Mailing-list: contact debian-help@ml.oltrelinux.com; run by ezmlm
References: <200212072046.35615.groova@tiscali.it>
Reply-to: <debian@ml.oltrelinux.com>
User-agent: Mutt/1.3.28i

 I'm sitting at my desk, reconfiguring my network monitor, when the phone rings.
 Caller-ID tells me it's  Alessandro Pagnin. I pick the receiver up and say:


> i comandi di spegnimento e di riavvio (reboot, poweroff, shutdown...) non 
> riesco a lanciarli da utente normale, pur essendo i permessi tutti settati in 
> maniera corretta.
[snip]
> Qulcuno sa dove pu? risiedere il problema?

-premesso che sarei curioso di sapere che cosa intendi per "permessi
tutti settati in maniera corretta" (hai dato loro il suid bit per root?)

-premesso che reboot e poweroff sono dei symlink a halt

-premesso che quello che hai riscontrato NON e' un problema, questo e' il
comportamento corretto in una macchina in cui c'e' separazione di
privilegi tra i vari utenti (d'accordo, diamo per buono che essendo tu
l'unico utente del sistema e avendo accesso da locale vuoi poterlo 
accendere e spegnere quando ti pare anche da utente)

-premesso che ci sono centinaia di modi per ottenere il solito risultato



il modo corretto(tm) per fare cio' che chiedi e' il seguente:

installa sudo (apt-get install sudo sotto debian)

lancia visudo (o edita il file /etc/sudoers)

Aggiungi le seguenti righe al file:


pippo ALL=(root) NOPASSWD: /sbin/poweroff
pippo ALL=(root) NOPASSWD: /sbin/reboot


dove pippo e' il nome dell'utente che deve poter spegnere/riavviare la
macchina

Fatto questo per spegnere/riavviare la macchina come utente pippo bastera' 
fare:

sudo /sbin/poweroff
sudo /sbin/reboot

Se ti da' ancora cosi' tanta noia scrivere un comando di X+4 caratteri
anziche' X allora aggiungi al .bash_profile nella home dell'utente pippo
le seguenti righe:

alias poweroff='sudo /sbin/poweroff'
alias reboot='sudo /sbin/reboot'


Fai uscire/rientrare l'utente e potrai usare i comandi poweroff e reboot
in modo trasparente tramite sudo.


Il metodo + sporco (dare il suid bit a halt, shutdown e compagnia) e'
sconsigliabile in quanto permette a *qualsiasi* uid di
spegnerti/riavviare (quindi DoSsare) la macchina. Con sudo mantieni un
controllo su *quale* uid puo' fare *cosa*.

Come nota finale, ricordo che per poter spegnere la macchina c'e'
bisogno del supporto per APM o del piu' evoluto ACPI (statico o modulare) 
nel kernel.
Non puoi usare entrambi. O l'uno o l'altro. 

La maggior parte dei BIOS ha un supporto ACPI buggato. Per utilizzare 
ACPI hai bisogno anche di acpid.
Per utilizzare ACPI devi ricompilare il kernel aggiungendo le seguenti 
voci:

CONFIG_PM=y
CONFIG_ACPI=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUSMGR=y
CONFIG_ACPI_SYS=y
CONFIG_ACPI_CPU=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_CMBATT=y
CONFIG_ACPI_THERMAL=y
# CONFIG_APM is not set

AC, EC, CMBATT e THERMAL servono solo per i portatili ovviamente.

Se il supporto acpi e' buggato puoi ripiegare su APM. 
Se la tua distribuzione non lo ha incluso direttamente nel kernel 
puoi provare a caricarlo con:

modprobe apm

Se non trova il modulo devi ricompilare il kernel con le seguenti
opzioni abilitate:

CONFIG_PM=y
# CONFIG_ACPI is not set
CONFIG_APM=m
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
CONFIG_APM_DO_ENABLE=y
CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
CONFIG_APM_RTC_IS_GMT=y
CONFIG_APM_ALLOW_INTS=y
# CONFIG_APM_REAL_MODE_POWER_OFF is not set


Puo' darsi che tu debba anche abilitare CONFIG_APM_REAL_MODE_POWER_OFF o
CONFIG_APM_DISPLAY_BLANK o CONFIG_APM_IGNORE_USER_SUSPEND a seconda di
quanto e' buono il BIOS della tua motherboard :)
Vai per tentativi.


Mando questo post in CC a linux@ml.oltrelinux.com perche' so che c'e'
molta confusione sull'argomento.

Sperando di aver fatto cosa gradita...

-- 
Luca Gibelli (luca _at_ gibelli.it || l.gibelli _at_ oltrelinux.com)
PGP Fingerprint: EC7C D6D2 D754 89F8 BDE8  8924 6341 3B07 C2F3 9102
Key Available at: http://gibelli.oltrelinux.com/gibelli.asc


BOFH excuse 3195:
 * Yes, yes, its called a desgin limitation


---------------------------------------------------------------------
Istruzioni della mailing-list: http://ml.oltrelinux.com/
Archivio della mailing-list: http://ml.oltrelinux.com/debian/


<Prev in Thread] Current Thread [Next in Thread>