[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re : Re: Re : Re: Problème avec pulseaudio



Le jeudi 24 juin 2021 à 15:59, Vincent Lefevre <vincent@vinc17.net> a écrit :

> C'est parce qu'avec systemd et son utilisation des CGroup, il ne
>
> faut pas utiliser "su" dans un fichier crontab.
>
Oui, en fait su n'est pas utilisé directement dans le fichier crontab mais par /usr/bin/updatedb.findutils qui est un script sh, mais bon ça revient au même vu que cet utilitaire est destiné à être utilisé dans un fichier crontab.

> Si je comprends bien, le problème est que le service cron est dans
>
> le system.slice, et que le su va alors créer un user.slice pour
>
> l'utilisateur en question (ici, nobody). Et c'est ça qui va activer
>
> divers trucs, dont une tentative de lancement de pulseaudio.
>
> Par exemple, si j'ajoute un fichier dans /etc/cron.d avec une
>
> ligne du genre
>
> 40 * * * * root su nobody -c true
>
> alors quand la commande est lancée, j'obtiens:
>
> Jun 24 15:40:01 zira CRON[186136]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
>
> Jun 24 15:40:01 zira CRON[186137]: (root) CMD (su nobody -c true)
>
> Jun 24 15:40:01 zira systemd[1]: Created slice User Slice of UID 65534.
>
> Jun 24 15:40:01 zira su[186138]: (to nobody) root on none
>
> Jun 24 15:40:01 zira systemd[1]: Starting User Runtime Directory /run/user/65534...
>
> Jun 24 15:40:01 zira su[186138]: pam_unix(su:session): session opened for user nobody(uid=65534) by (uid=0)
>
> Jun 24 15:40:01 zira systemd[1]: Finished User Runtime Directory /run/user/65534.
>
> Jun 24 15:40:01 zira systemd[186140]: pam_unix(systemd-user:session): session opened for user nobody(uid=65534) by (uid=0)
>
> Jun 24 15:40:01 zira systemd[1]: Starting User Manager for UID 65534...
>
> [...]
>
> Jun 24 15:40:01 zira systemd[186140]: Starting Sound Service...
>
> Jun 24 15:40:01 zira nologin[186163]: Attempted login by root (UID: 65534) on UNKNOWN
>
> Jun 24 15:40:01 zira su[186138]: pam_unix(su:session): session closed for user nobody
>
> Jun 24 15:40:01 zira pipewire[186161]: could not set nice-level to -11: Permission denied
>
> Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
>
> Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
>
> Jun 24 15:40:01 zira systemd[186140]: Started D-Bus User Message Bus.
>
> Jun 24 15:40:01 zira pipewire[186161]: could not make thread realtime: Permission denied
>
> Jun 24 15:40:01 zira systemd[1]: session-799.scope: Succeeded.
>
> Jun 24 15:40:01 zira pipewire[186161]: Failed to receive portal pid: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get PID of name 'org.freedesktop.portal.Desktop': no such name
>
> Jun 24 15:40:01 zira pipewire-media-session[186168]: could not set nice-level to -11: Permission denied
>
> Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
>
> Jun 24 15:40:01 zira rtkit-daemon[730]: Supervising 5 threads of 1 processes of 2 users.
>
> Jun 24 15:40:01 zira pipewire-media-session[186168]: could not make thread realtime: Permission denied
>
> Jun 24 15:40:01 zira CRON[186136]: pam_unix(cron:session): session closed for user root
>
> Jun 24 15:40:01 zira pulseaudio[186162]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
>
> Jun 24 15:40:01 zira postfix/pickup[183192]: A54ACC23C25: uid=0 from=<root>
>
> Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
>
> Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
>
> Jun 24 15:40:01 zira systemd[186140]: Failed to start Sound Service.
>
> [...]
>
> Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 1.
>
> Jun 24 15:40:01 zira systemd[186140]: Stopped Sound Service.
>
> Jun 24 15:40:01 zira systemd[186140]: Starting Sound Service...
>
> Jun 24 15:40:01 zira pulseaudio[186178]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
>
> Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
>
> Jun 24 15:40:01 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
>
> Jun 24 15:40:01 zira systemd[186140]: Failed to start Sound Service.
>
> Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 2.
>
> Jun 24 15:40:02 zira systemd[186140]: Stopped Sound Service.
>
> Jun 24 15:40:02 zira systemd[186140]: Starting Sound Service...
>
> Jun 24 15:40:02 zira pulseaudio[186179]: Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory
>
> Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
>
> Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Failed with result 'exit-code'.
>
> Jun 24 15:40:02 zira systemd[186140]: Failed to start Sound Service.
>
> Jun 24 15:40:02 zira systemd[186140]: pulseaudio.service: Scheduled restart job, restart counter is at 3.
>
> Jun 24 15:40:02 zira systemd[186140]: Stopped Sound Service.
>
> [...]
>
> Je ne sais pas si ça vient aussi de la config de pam...
>
J'y ai pensé aussi...
>
> Sauf que ça va juste régler le problème avec pulseaudio, et pas
>
> les autres erreurs éventuelles dues à l'utilisation du "su".
>
> > Préalablement, pour éviter que ce soit écrasé par une mise à jour de pulseaudio :
> >
> > dpkg-divert --rename /usr/lib/systemd/user/pulseaudio.service
> > =============================================================
> >
> > cp /usr/lib/systemd/user/pulseaudio.service.distrib /usr/lib/systemd/user/pulseaudio.service
> > ============================================================================================
>
> Il est probablement préférable de remplacer le lien symbolique
>
> /etc/systemd/user/default.target.wants/pulseaudio.service -> /usr/lib/systemd/user/pulseaudio.service
>
> par un fichier avec la config voulue (je n'ai pas testé).
>
Oui, c'est probablement mieux si dpkg traite les liens symboliques de /etc de la même façon que les fichiers de configuration modifiés.

> > Après je ne sais pas trop à qui attribuer ce bug, est-ce que pulseaudio devrait intégrer une condition pour nobody comme pour root ? est-ce que systemd ne devrait pas lancer de "User Manager" pour nobody ? est-ce que c'est le script updatedb.findutils qui fait quelque chose d'incorrect ?
Du coup il y a peut-être quelque chose à faire avec libpam-runtime aussi ;)

>
> Comme il peut aussi y avoir des problèmes avec d'autres utilisateurs
>
> que nobody, je dirais que c'est surtout le "su" à éviter. Désactiver
>
> les trucs pour nobody pourrait toujours être utile, mais ne réglerait
>
> pas le problème général.
>
> Peut-être que le fonctionnement du "su" pourrait être corrigé?
>
> Au passage, "sudo" n'est-il maintenant pas recommendé à la place
>
> de "su"? Et règle-t-il ce problème? (Pas testé...)
>
sudo n'est pas dans le système de base, donc ça fait des dépendances en plus... peut être qu'il faudrait simplement ajouter un conflit entre locate et systemd, comme ça on garde un locate léger pour les systèmes embarqués avec sysvinit, et il y a mlocate en remplacement pour les systèmes normaux.
>
> C'est ce que j'utilise depuis plusieurs années (avant, c'était
>
> slocate, je crois).
Je confirme, je n'avais aucun souvenir de mlocate mais avant (au moins jusqu'à jessie) j'installais slocate explicitement.

Merci pour ces explication supplémentaires.


Reply to: