Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Permission Denied on RPC.connect() trying to update Rich Presence #58

Open
erenfro opened this issue Jun 12, 2024 · 2 comments
Open

Permission Denied on RPC.connect() trying to update Rich Presence #58

erenfro opened this issue Jun 12, 2024 · 2 comments

Comments

@erenfro
Copy link
Contributor

erenfro commented Jun 12, 2024

On Ubuntu 24.04 running Discord in a flatpak, using a symlink as documented here: https://github.com/flathub/com.discordapp.Discord/wiki/Rich-Precense-(discord-rpc) and running Steam (unsandboxed), I'm getting this error when steam-presence is trying to update Rich Presence:

Jun 12 12:51:51 midgaard.home.ld python[407813]: [Jun 12 2024 - 12:51:51] creating new rich presence object for LEGO® 2K Drive
Jun 12 12:51:51 midgaard.home.ld python[407813]: Traceback (most recent call last):
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/home/psi-jack/.local/bin/steam-presence/main.py", line 1201, in
Jun 12 12:51:51 midgaard.home.ld python[407813]: main()
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/home/psi-jack/.local/bin/steam-presence/main.py", line 1182, in main
Jun 12 12:51:51 midgaard.home.ld python[407813]: RPC.connect()
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/home/psi-jack/.local/bin/steam-presence/venv/lib/python3.12/site-packages/pypresence/presence.py", line 43, in connect
Jun 12 12:51:51 midgaard.home.ld python[407813]: self.loop.run_until_complete(self.handshake())
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
Jun 12 12:51:51 midgaard.home.ld python[407813]: return future.result()
Jun 12 12:51:51 midgaard.home.ld python[407813]: ^^^^^^^^^^^^^^^
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/home/psi-jack/.local/bin/steam-presence/venv/lib/python3.12/site-packages/pypresence/baseclient.py", line 112, in handshake
Jun 12 12:51:51 midgaard.home.ld python[407813]: self.sock_reader, self.sock_writer = await asyncio.wait_for(asyncio.open_unix_connection(ipc_path), self.connection_timeout)
Jun 12 12:51:51 midgaard.home.ld python[407813]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/usr/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
Jun 12 12:51:51 midgaard.home.ld python[407813]: return await fut
Jun 12 12:51:51 midgaard.home.ld python[407813]: ^^^^^^^^^
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/usr/lib/python3.12/asyncio/streams.py", line 97, in open_unix_connection
Jun 12 12:51:51 midgaard.home.ld python[407813]: transport, _ = await loop.create_unix_connection(
Jun 12 12:51:51 midgaard.home.ld python[407813]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/usr/lib/python3.12/asyncio/unix_events.py", line 261, in create_unix_connection
Jun 12 12:51:51 midgaard.home.ld python[407813]: await self.sock_connect(sock, path)
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/usr/lib/python3.12/asyncio/selector_events.py", line 651, in sock_connect
Jun 12 12:51:51 midgaard.home.ld python[407813]: return await fut
Jun 12 12:51:51 midgaard.home.ld python[407813]: ^^^^^^^^^
Jun 12 12:51:51 midgaard.home.ld python[407813]: File "/usr/lib/python3.12/asyncio/selector_events.py", line 659, in _sock_connect
Jun 12 12:51:51 midgaard.home.ld python[407813]: sock.connect(address)
Jun 12 12:51:51 midgaard.home.ld python[407813]: PermissionError: [Errno 13] Permission denied
Jun 12 12:51:51 midgaard.home.ld systemd[2572]: steam-presence.service: Main process exited, code=exited, status=1/FAILURE
Jun 12 12:51:51 midgaard.home.ld systemd[2572]: steam-presence.service: Failed with result 'exit-code'.

@erenfro
Copy link
Contributor Author

erenfro commented Jun 12, 2024

For further verification, just in case:
lrwxrwxrwx 1 psi-jack psi-jack 40 Jun 12 10:23 /run/user/1000/discord-ipc-0 -> app/com.discordapp.Discord/discord-ipc-0

srwxr-xr-x 1 psi-jack psi-jack 0 Jun 12 02:17 /run/user/1000/app/com.discordapp.Discord/discord-ipc-0

@erenfro
Copy link
Contributor Author

erenfro commented Jun 12, 2024

So this seems to be an issue with AppArmor denials:
[62619.889549] audit: type=1400 audit(1718214058.612:1215558): apparmor="DENIED" operation="connect" class="file" info="Failed name lookup - disconnected path" error=-13 profile="unprivileged_userns" name="run/flatpak/app/com.discordapp.Discord/discord-ipc-0" pid=488004 comm="python" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=1000

I wonder if this is something that can be addressed in a proper manner, or if this could be documented on how to grant permission, etc..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant