Я хочу запускать программы от имени другого пользователя в моей системе Ubuntu MATE 20.04. без внесения каких-либо постоянных изменений в систему таких как настройка общесистемного демона или редактирование файлов конфигурации. Программы являются одноразовыми экземплярами, запускаются через ssh
или же су
.
Я предоставил доступ к серверу дисплея, запустив xhost +si:localuser:$altaccount
, и отправил файл cookie пульса через pax11publish -S /run/user/$UID/pulse/native -e
.
Затем я дал другому пользователю физический доступ к сокету:
setfacl -m u:$altaccount:x /run/user/$UID /run/user/$UID/pulse
setfacl -m u:$altaccount:rw /run/user/$UID/pulse/native
setfacl -m m::x /run/user/$UID /run/user/$UID/pulse
Это сработало, как и ожидалось, но мне приходится повторно запускать последнюю команду каждые несколько часов, так как нулевая маска ACL продолжает возвращаться, даже без выхода из системы или перезагрузки системы — я хочу, чтобы изменения были эфемерными, но не что эфемерный: они должны длиться, пока я не выйду из системы.
Есть ли в PulseAudio «правильно поддерживаемый» способ предоставления доступа другим локальным пользователям? эфемерно? Я не хочу вносить какие-либо длительные системные изменения; дрейф конфигурации — это чума, и я ненавижу отслеживать каждую маленькую «настройку», которую я сделал в системе, которая может привести к неожиданным взаимодействиям, осложнениям или конфликтам с другими вещами, которые я попытаюсь сделать в будущем.