ConsoleKit (Italiano)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale-modified.pngThe translation of this article or section does not reflect the original text.Tango-preferences-desktop-locale-modified.png

Reason: Last updated in 2012 (234327), out of sync with English page (Discuss in Talk:ConsoleKit (Italiano))
Attenzione: Dal sito internet di Consolekit:
ConsoleKit non è più sviluppato attivamente. L'attenzione si è spostata sulla funzione integrata seat/user/session del software/systemd chiamato systemd-loginctl.

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).

Considerando che Consolekit non è più sviluppato, potrebbe essere una buona idea prendere in considerazione le varie alternative: udev, udiskie e polkit. Altrimenti si prenda in considerazione di switchare completamente su Systemd.

Installazione

Consolekit non è più nei repository di Arch in quanto non più attivamente sviluppato. Usare consolekit è quindi fortemenente sconsigliato.

Rimpiazzare ConsoleKit con systemd-logind

Nota: A partire da polkit 0.107-4, Consolekit è completamente rimpiazzato da systemd-logind, quindi perchè il proprio sistema funzioni correttamente è consigliato usare systemd.

Un buon metodo per rimuovere Consolekit è effettuare un Login Automatico in una console virtuale e avviare X da qui. È molto importante che il server grafico sia avviato sulla stessa console nella quale viene effettuato l'accesso, in caso contrario infatti, logind non sarà in grado di tenere traccia della sessione utente. Rimuovere quindi ck-launch-session da ~/.xinitrc (vedere Xinitrc per ulteriori informazioni).

Per verificare lo stato della propria sessione è possibile usare il comando loginctl. Tale comando mostrerà se la sessione di logind è attiva, mostrando in questo caso un Active=yes. Tutte le operazioni di Policykit (spegnimento/ibernazione ecc) e di Udisks (mount dei dispositivi) ora dovrebbero funzionare in automatico

$ loginctl show-session $XDG_SESSION_ID

ConsoleKit e i Display Manager

ck-launch-session

Per lanciare la sessione di Xorg con consolekit aggiungere alla riga exec di ~/.xinitrc ad esempio:

exec ck-launch-session openbox-session

Questo lancerà una sessione di Openbox con le variabili d'ambiente appropriate in modo tale da abilitare ConsoleKit a tutti i processi conseguenti.

Display managers come GDM, SLiM e LXDM lanciano ConsoleKit automaticamente con ogni sessione di X.

Nota:
  • Se il proprio DM fornisce già una sessione di consolekit non provare ad avviarne un'altra, il risultato sarebbe un crash dello stesso consolekit.
  • In particolare, è fondamentale, NON inserire ck-launch-session nel file ~/.xinitrc se si usa SLiM.

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.

~/.xinitrc
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

Nota: L'utilizzo di dbus per sospensione e ibernazione richiede upower.

Ulteriori risorse