diff options
| -rw-r--r-- | backend/localplatformlinux.py | 4 | ||||
| -rw-r--r-- | backend/main.py | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/backend/localplatformlinux.py b/backend/localplatformlinux.py index da0a758f..811db8a6 100644 --- a/backend/localplatformlinux.py +++ b/backend/localplatformlinux.py @@ -60,6 +60,8 @@ def chown(path : str, user : UserType = UserType.HOST_USER, recursive : bool = return result == 0 def chmod(path : str, permissions : int, recursive : bool = True) -> bool: + if _get_effective_user_id() != 0: + return True result = call(["chmod", "-R", str(permissions), path] if recursive else ["chmod", str(permissions), path]) return result == 0 @@ -191,4 +193,4 @@ def get_unprivileged_user() -> str: logger.warn("Unprivileged user is not properly configured. Defaulting to 'deck'") user = 'deck' - return user
\ No newline at end of file + return user diff --git a/backend/main.py b/backend/main.py index 2eb785c7..b2e3e74a 100644 --- a/backend/main.py +++ b/backend/main.py @@ -24,7 +24,7 @@ from aiohttp_jinja2 import setup as jinja_setup # local modules from browser import PluginBrowser from helpers import (REMOTE_DEBUGGER_UNIT, csrf_middleware, get_csrf_token, - mkdir_as_user, get_system_pythonpaths) + mkdir_as_user, get_system_pythonpaths, get_effective_user_id) from injector import get_gamepadui_tab, Tab, get_tabs, close_old_tabs from loader import Loader @@ -178,6 +178,9 @@ if __name__ == "__main__": # Required for multiprocessing support in frozen files multiprocessing.freeze_support() + else: + if get_effective_user_id() != 0: + logger.warning(f"decky is running as an unprivileged user, this is not officially supported and may cause issues") # Append the loader's plugin path to the recognized python paths sys.path.append(path.join(path.dirname(__file__), "plugin")) |
