ConsoleKit (Italiano)
ConsoleKit è un framework per gestire i permessi e le sessioni degli utenti. I compiti che più comunemente vengono affidati a ConsoleKit sono: abilitare gli utenti non-root a montare dispositivi usb e permettere loro sospensione e spegnimento del pc (ad esempio Thunar, Nautilus e il menu di spegnimento di GNOME fanno uso di ConsoleKit).
Contents
Installazione
Installare il pacchetto consolekit, disponibile nei repositories ufficiali.
ConsoleKit e i Display Manager
ck-launch-session
Per lanciare una sessione di X con ConsoleKit, usando un display manager com SLiM, aggiungere alla riga exec
di ~/.xinitrc
ad esempio:
exec ck-launch-session startxfce4
Questo lancerà una sessione di Xfce con le variabili d'ambiente appropriate in modo tale da abilitare ConsoleKit a tutti i processi conseguenti. Display managers come KDM, GDM, and LXDM lanciano ConsoleKit automaticamente con ogni sessione di X.
Lanciare applicazioni direttamente da ~/.xinitrc
Se si usa il file Xinitrc per lanciare delle applicazioni nella propria sessione di X, non è detto che tutte queste vengano eseguite con le variabili d'ambiente appropriate per abilitare correttamente la sessione di ConsoleKit. Nel seguente esempio solo i processi "figli" di Compiz saranno correttamente abilitati all'uso di ConsoleKit, mentre i figli di Xterm non lo saranno.
xterm & exec ck-launch-session compiz ccp
Tipicamente, questo problema riguarda Compiz standalone e alcune altre applicazioni cone i launchers, (gnome-do, kupfer, gmrun, xbindkeys, ecc.) che non saranno quindi abilitati all'uso di ConsoleKit. Il metodo per aggirare questo problema è avviare tutta la sessione in un secondo script, ad esempio ~/.xstart
. Non dimenticare dbus-launch
se necessario. Esempio:
~/.xinitrc
exec ck-launch-session dbus-launch $HOME/.xstart
~/.xstart
compiz ccp & Thunar & Terminal
È importante non dimenticare di rendere ~/.xstart
eseguibile, dando da root:
$ chmod +x ~/.xstart
Per vedere se la sessione è partita correttamente usare il seguente comando:
$ ck-list-sessions
L'output dovrebbe essere qualcosa tipo:
Session18: unix-user = '1000' realname = 'Your Name' seat = 'Seat1' session-type = active = TRUE x11-display = ':0' x11-display-device = '/dev/tty2' display-device = '/dev/tty1' remote-host-name = is-local = TRUE on-since = '2011-11-16T12:01:50.104764Z' login-session-id = '7'
No display manager
Se non si usa un Display Manager, ma si avvia X con startx
, o da /etc/inittab
e si nota che consolekit non è avviato (il comando ck-list-sessions
mostrerà active = FALSE
), sarà necessario usare il metodo: "Bash_profile".
Vedere xinitrc per ulteriori informazioni.
Usare dbus per operazioni di sospensione/spegnimento/riavvio ecc
- spegnimento:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
- riavvio:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
- sospensione:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
- ibernazione (sospensione su disco):
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Questo metodo da per scontato che l'utente abbia i permessi di policy kit. Il gruppo di default per questa funzionalità è "wheel". Per cambiare ciò, editare /etc/polkit-1/localauthority.conf.d/50-localauthority.conf