Tôi đang tìm cách chạy các chương trình với tư cách người dùng khác trên hệ thống Ubuntu MATE 20.04 của mình mà không thực hiện bất kỳ thay đổi hệ thống liên tục nào chẳng hạn như thiết lập daemon toàn hệ thống hoặc chỉnh sửa tệp cấu hình. Các chương trình là phiên bản một lần, chạy qua ssh
hoặc su
.
Tôi đã cấp quyền truy cập vào máy chủ hiển thị bằng cách chạy xhost +si:localuser:$altaccount
và gửi cookie xung qua pax11publish -S /run/user/$UID/Pulse/native -e
.
Sau đó, tôi đã cấp cho người dùng khác quyền truy cập vật lý vào ổ cắm:
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
Nó hoạt động như mong đợi, nhưng tôi phải chạy lại lệnh cuối cùng vài giờ một lần vì mặt nạ ACL null liên tục quay trở lại, ngay cả khi không đăng xuất hoặc khởi động lại hệ thống—Tôi muốn các thay đổi chỉ là tạm thời, nhưng không điều đó phù du: chúng sẽ tồn tại cho đến khi tôi đăng xuất.
PulseAudio có cách "được hỗ trợ phù hợp" để cấp quyền truy cập cho người dùng cục bộ khác không phù du? Tôi không muốn thực hiện bất kỳ thay đổi hệ thống lâu dài nào; config drift là một vấn đề khó khăn và tôi ghét phải theo dõi mọi "chỉnh sửa" nhỏ mà tôi đã thực hiện đối với hệ thống có thể có những tương tác, sự phức tạp hoặc xung đột không mong muốn với những thứ khác mà tôi cố gắng thực hiện trong tương lai.