Quelle est la différence entre un système avec consolekit et celui sans le système?

Tout d'abord, j'utilise le système de test Debian avec Openbox autonome. Je n'ai pas systemd, juste sysvinit, et je ne vais certainement pas utiliser systemd.

Hier, ma boîte Debian a commencé à renvoyer des messages comme ceux ci-dessous:

Jun 14 18:08:10 morfikownia login[4722]: pam_unix(login:session): session opened for user morfik by LOGIN(uid=0) Jun 14 18:08:10 morfikownia dbus[4391]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper) Jun 14 18:08:10 morfikownia dbus[4391]: [system] Activated service 'org.freedesktop.ConsoleKit' failed: Failed to execute program org.freedesktop.ConsoleKit: Success ... Jun 14 18:08:19 morfikownia pulseaudio[4855]: [pulseaudio] sink.c: Default and alternate sample rates are the same. Jun 14 18:08:19 morfikownia pulseaudio[4855]: [pulseaudio] source.c: Default and alternate sample rates are the same. Jun 14 18:08:20 morfikownia dbus[4391]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper) Jun 14 18:08:20 morfikownia dbus[4391]: [system] Activated service 'org.freedesktop.ConsoleKit' failed: Failed to execute program org.freedesktop.ConsoleKit: Success Jun 14 18:08:20 morfikownia pulseaudio[4855]: [pulseaudio] module-console-kit.c: GetSessionsForUnixUser() call failed: org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program org.freedesktop.ConsoleKit: Success Jun 14 18:08:20 morfikownia pulseaudio[4855]: [pulseaudio] module.c: Failed to load module "module-console-kit" (argument: ""): initialization failed. Jun 14 18:08:20 morfikownia pulseaudio[4855]: [pulseaudio] main.c: Module load failed. Jun 14 18:08:20 morfikownia pulseaudio[4855]: [pulseaudio] main.c: Failed to initialize daemon. 

De plus, chaque command su génère le journal suivant:

 Jun 14 18:08:50 morfikownia su[6043]: Successful su for root by morfik Jun 14 18:08:50 morfikownia su[6043]: + /dev/pts/2 morfik:root Jun 14 18:08:50 morfikownia su[6043]: pam_unix(su:session): session opened for user root by (uid=1000) Jun 14 18:08:50 morfikownia dbus[4391]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper) Jun 14 18:08:50 morfikownia dbus[4391]: [system] Activated service 'org.freedesktop.ConsoleKit' failed: Failed to execute program org.freedesktop.ConsoleKit: Success 

J'ai réussi à résoudre ces problèmes.

Dans le cas de PulseAudio, je viens de commenter ces lignes du file /etc/pulse/default.pa :

 ### If autoexit on idle is enabled we want to make sure we only quit ### when no local session needs us anymore. #.ifexists module-console-kit.so #load-module module-console-kit #.endif #.ifexists module-systemd-login.so #load-module module-systemd-login #.endif 

Dans le cas de tout le rest, j'ai dû lancer pam-auth-update et décoché ConsoleKit Session Management :

  PAM profiles to enable [ ] encfs encrypted home directories [*] Unix authentication [ ] Mount volumes for user [*] GNOME Keyring Daemon - Login keyring management [ ] ConsoleKit Session Management [ ] Inheritable Capabilities Management 

Et un petit changement a été nécessaire pour le file ~/.xinitrc :

 #exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session exec openbox-session 

parce que quand j'essayais de vérifier une list de session, j'ai eu l'erreur suivante:

 $ ck-list-sessions ** (ck-list-sessions:15584): WARNING **: Failed to get list of seats: Failed to execute program org.freedesktop.ConsoleKit: Success 

Il n'y a pas d'erreurs maintenant, mais je n'ai aucune idée des changements que ces étapes peuvent entraîner. Je sais que la console est morte d'une façon ou d'une autre, alors cela arriverait finalement de toute façon. Pendant ce time, je lis cette question afin de comprendre ce qui se passera après ce changement, mais je ne reçois pas beaucoup de choses.

Il permet de changer d'user sans se déconnecter [plusieurs users peuvent être connectés sur le même matériel en même time avec un user actif].

Je peux faire su user , et cela change sans problème:

 Jun 15 10:36:57 morfikownia su[103349]: Successful su for morfik2 by morfik Jun 15 10:36:57 morfikownia su[103349]: + /dev/pts/5 morfik:morfik2 Jun 15 10:36:57 morfikownia su[103349]: pam_unix(su:session): session opened for user morfik2 by (uid=1000) 

Je peux aussi save de nombreux users dans via ssh. Alors, où est l'avantage d'utiliser consolekit? Pourriez-vous me dire si la suppression peut causer des problèmes de security et comment puis-je voir le changement? Parce qu'il semble que rien n'a changé.

Il permet de changer d'user sans se déconnecter [plusieurs users peuvent être connectés sur le même matériel en même time avec un user actif].

Je crois que consolekit a fourni un mécanisme pour les applications pour déterminer quel user est actif , c'est à dire assis devant l'ordinateur. Cela diffère de l' su user de cette façon:

  • Votre ordinateur est doté d'une souris, d'un keyboard, d'un écran, d'un microphone, d'une camera et d'un son.
  • Vous vous asseyez sur votre ordinateur et vous vous connectez via une console virtuelle (VC) / gestionnaire de connection graphique (GLM).
  • Vous verrouillez votre session, puis repartez.
  • Quelqu'un d'autre s'assoit et se connecte via un second VC / GLM.
  • Deux users sont maintenant connectés (deux sessions), mais seul le second est actif .

Dont les process ont access au matériel maintenant? Vous ne voulez certainement pas que le deuxième user lance un programme d'logging qui conserve l'access au microphone / à la camera / au keyboard lorsque vous revenez à votre session.

Bien que je ne sache pas si consolekit supprime l'access au matériel des process, il permet au less d'être un «bon citoyen» et de libérer du matériel lorsque la session change.

Les connections distantes et su

ssh et su - user ne sont pas affectés par consolekit. Consolekit est destiné à gérer les sessions pour les sièges. Un siège est une collection d'appareils physiques (souris, keyboard, affichage, etc.) affectés à ce siège. Une session est créée lorsqu'un user se connecte audit siège. Un siège peut avoir plusieurs sessions, et consolekit suit ces sessions, et notifie les process (qui écoutent) via DBUS lorsque la session change.

Ressortingctions d'arrêt multi-users

Consolekit peut également être utilisé de concert avec policykit pour empêcher les users d'arrêter le système lorsque plusieurs sessions sont ouvertes (plus d'un user connecté).

Pourquoi utiliser consolkit?

Pour un système mono-user, consolekit n'a aucune utilité. Si vous avez une famille qui partage un seul ordinateur, cela permet à tout le monde de se connecter et de changer d'user sans se déconnecter et sans interférer avec l'access au matériel. IIRC, chaque user a aussi sa propre instance xserver.

Alternatives

Je ne connais aucune alternative à consolekit ou systemd. Si vous avez besoin de cette fonctionnalité, vous pouvez envisager de configurer le kit de console.