From fb6ecb24f00596d4b7a9b6e87463635c6bd98748 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Mon, 7 Sep 2026 20:49:24 +0200 Subject: [PATCH] fix(desktop): preserve Linux sandboxing wherever the host allows it Chromium checks its Linux sandbox before main.js, while package installation probes run as root and miss AppArmor restrictions on desktop users. Choose the launch flags before exec and always install the SUID alternative for native packages. Test published artifacts as an ordinary user with namespaces both denied and allowed; never repair permissions in the smoke harness. --- .github/workflows/ci.yml | 33 ++++- .github/workflows/desktop-release.yml | 26 +++- docs/release.md | 1 + docs/testing.md | 8 +- .../app/src/desktop/daemon/desktop-daemon.ts | 17 +++ .../desktop-diagnostic-report.test.ts | 18 +++ .../diagnostics/desktop-diagnostic-report.ts | 27 +++- .../linux-sandbox/appimage-diagnostics.png | Bin 0 -> 86015 bytes .../linux-sandbox/deb-diagnostics.png | Bin 0 -> 79777 bytes .../evidence/linux-sandbox/deb-workspace.png | Bin 0 -> 49651 bytes packages/desktop/e2e/linux-artifact-smoke.js | 59 ++++++++ packages/desktop/e2e/packaged-app-smoke.js | 137 +++++++++++------- packages/desktop/electron-builder.yml | 6 + packages/desktop/scripts/after-pack.js | 6 + .../scripts/linux-sandbox/after-install.tpl | 54 +++++++ .../desktop/scripts/linux-sandbox/index.js | 12 ++ .../desktop/scripts/linux-sandbox/launcher.sh | 55 +++++++ packages/desktop/src/daemon/daemon-manager.ts | 6 + .../src/daemon/desktop-packaging.test.ts | 13 ++ .../src/daemon/linux-launcher.posix.test.ts | 123 ++++++++++++++++ .../desktop/src/diagnostics/sandbox.test.ts | 25 ++++ packages/desktop/src/diagnostics/sandbox.ts | 10 ++ packages/desktop/src/main.ts | 17 ++- public-docs/index.md | 21 +++ 24 files changed, 604 insertions(+), 70 deletions(-) create mode 100644 packages/desktop/e2e/evidence/linux-sandbox/appimage-diagnostics.png create mode 100644 packages/desktop/e2e/evidence/linux-sandbox/deb-diagnostics.png create mode 100644 packages/desktop/e2e/evidence/linux-sandbox/deb-workspace.png create mode 100644 packages/desktop/e2e/linux-artifact-smoke.js create mode 100644 packages/desktop/scripts/linux-sandbox/after-install.tpl create mode 100644 packages/desktop/scripts/linux-sandbox/index.js create mode 100644 packages/desktop/scripts/linux-sandbox/launcher.sh create mode 100644 packages/desktop/src/daemon/linux-launcher.posix.test.ts create mode 100644 packages/desktop/src/diagnostics/sandbox.test.ts create mode 100644 packages/desktop/src/diagnostics/sandbox.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c555a61432..8d87038922 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -178,7 +178,7 @@ jobs: name: desktop-tests (ubuntu-latest) needs: changes if: ${{ !cancelled() && (needs.changes.outputs.full != 'false' || needs.changes.outputs.desktop != 'false') }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 timeout-minutes: 30 permissions: contents: read @@ -201,7 +201,7 @@ jobs: - name: Install virtual display if: ${{ runner.os == 'Linux' }} - run: sudo apt-get update && sudo apt-get install -y xvfb xauth + run: sudo apt-get update && sudo apt-get install -y xvfb xauth rpm - name: Install Playwright browser if: ${{ runner.os == 'Linux' }} @@ -226,17 +226,38 @@ jobs: if-no-files-found: ignore retention-days: 7 - - name: Build and smoke unpacked desktop app + - name: Build Linux desktop artifacts if: ${{ runner.os == 'Linux' }} - run: npm run build:desktop -- --publish never --linux --x64 --dir + run: npm run build:desktop -- --publish never --linux --x64 env: EP_GH_IGNORE_TIME: true - PASEO_DESKTOP_SMOKE: "1" PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke + - name: Smoke installed artifacts with restricted user namespaces + if: ${{ runner.os == 'Linux' }} + run: | + sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=1 + if unshare --user --map-root-user --net true; then + echo "Expected the launching user's namespace probe to be denied" + exit 1 + fi + sudo dpkg -i packages/desktop/release/*.deb + node packages/desktop/e2e/linux-artifact-smoke.js packages/desktop/release disabled + env: + PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke/restricted + + - name: Smoke sandbox-preserving portable launches + if: ${{ runner.os == 'Linux' }} + run: | + sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 + unshare --user --map-root-user --net true + node packages/desktop/e2e/linux-artifact-smoke.js packages/desktop/release enabled + env: + PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke/userns + - name: Upload packaged smoke diagnostics uses: actions/upload-artifact@v4 - if: ${{ failure() && runner.os == 'Linux' }} + if: ${{ always() && runner.os == 'Linux' }} with: name: desktop-packaged-smoke-linux-x64 path: ${{ runner.temp }}/desktop-smoke diff --git a/.github/workflows/desktop-release.yml b/.github/workflows/desktop-release.yml index 5c9bc567ba..c26e142dad 100644 --- a/.github/workflows/desktop-release.yml +++ b/.github/workflows/desktop-release.yml @@ -218,7 +218,7 @@ jobs: permissions: contents: write packages: read - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 @@ -261,7 +261,7 @@ jobs: NODE - name: Install Linux smoke display - run: sudo apt-get update && sudo apt-get install -y xvfb xauth + run: sudo apt-get update && sudo apt-get install -y xvfb xauth rpm - name: Build desktop release shell: bash @@ -277,8 +277,28 @@ jobs: build_args+=("-c.publish.channel=$RELEASE_CHANNEL") npm run build:desktop "${build_args[@]}" + - name: Smoke installed artifacts with restricted user namespaces + run: | + sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=1 + if unshare --user --map-root-user --net true; then + echo "Expected the launching user's namespace probe to be denied" + exit 1 + fi + sudo dpkg -i packages/desktop/release/*.deb + node packages/desktop/e2e/linux-artifact-smoke.js packages/desktop/release disabled + env: + PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke/restricted + + - name: Smoke sandbox-preserving portable launches + run: | + sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 + unshare --user --map-root-user --net true + node packages/desktop/e2e/linux-artifact-smoke.js packages/desktop/release enabled + env: + PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke/userns + - name: Upload packaged smoke diagnostics - if: failure() + if: always() uses: actions/upload-artifact@v4 with: name: desktop-smoke-linux-x64 diff --git a/docs/release.md b/docs/release.md index 342fa9eaf9..28415abc8c 100644 --- a/docs/release.md +++ b/docs/release.md @@ -162,6 +162,7 @@ npm run release:promote # Promote X.Y.Z-beta.N to stable X.Y.Z - Betas publish desktop assets and APKs for testing. They also build iOS, upload it to TestFlight, add it to the `Paseo Beta` external group, and submit it for Beta App Review. They do not submit mobile builds to the production stores. - `release:promote` creates a fresh stable tag like `v0.1.41`; the final release never reuses the beta tag - Desktop assets now come from the Electron package at `packages/desktop` +- Linux artifact launch checks run with both restricted and usable user namespaces before publication; see [packaged desktop smoke](testing.md#packaged-desktop-smoke). Keep the installed-package and AppImage checks together. - Beta releases use Electron's `beta` update channel. Users on the stable channel only receive stable releases; users on the beta channel receive beta releases and the final stable release when it is published. - **Each beta carries its own changelog entry.** `Release Notes Sync` mirrors the matching `## X.Y.Z-beta.N` entry into that prerelease body. Promotion collapses every beta entry for the version into one final stable entry. See the Changelog policy section. diff --git a/docs/testing.md b/docs/testing.md index 9b94de5038..f201402bb3 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -107,14 +107,18 @@ When a test is labeled end-to-end, it calls the real service. No environment var The packaged desktop smoke is an external observer of the production launch path. It must not add a smoke-only branch to Electron main or start the daemon itself. -The harness launches the unpacked packaged app with isolated user data and daemon state, connects to the real renderer over Chromium's debugging protocol, and requires all of these outcomes: +The harness launches the packaged app with isolated user data and daemon state, connects to the real renderer over Chromium's debugging protocol, and requires all of these outcomes: - the `paseo://app/` renderer mounts into `#root`; - the sandboxed preload exposes the desktop bridge; - the renderer starts a fresh desktop-managed daemon through the normal startup bootstrap; - the bundled CLI can query that daemon and run a terminal command. -Pull-request CI runs the Linux x64 smoke under Xvfb when the cumulative PR diff changes `packages/desktop/**`. The desktop release matrix runs the harness against each host-native packaged app before publishing. All smoke jobs upload renderer, desktop, and daemon diagnostics on failure. +Pull-request CI runs the Linux x64 smoke under Xvfb when the cumulative PR diff selects desktop coverage. The Linux job is pinned to Ubuntu 24.04 and runs twice: with AppArmor user namespace restrictions enabled, then with user namespaces available. It installs the real `.deb`, launches the real AppImage via `--appimage-extract-and-run`, and launches the extracted tar archive. Each launch verifies the reported sandbox decision; enabled renderers must also have `NoNewPrivs: 1` and `Seccomp: 2` in `/proc`. The desktop release matrix runs the same Linux artifact checks before publishing and retains host-native macOS and Windows smokes. + +Never repair `chrome-sandbox` in the smoke harness. The old unpacked smoke set its mode to 4755 and concealed a broken package installer. Run installer tests as root and launch tests as an ordinary user: a root-run namespace probe does not reproduce Ubuntu's AppArmor policy for desktop users. Preserve both restricted and unrestricted cases; either one alone permits another sandbox regression. + +Smoke jobs upload renderer screenshots and desktop/daemon diagnostics, including successful Linux sandbox evidence. To exercise the smoke locally on Linux: diff --git a/packages/app/src/desktop/daemon/desktop-daemon.ts b/packages/app/src/desktop/daemon/desktop-daemon.ts index f465c32ac1..24ee4a2bf9 100644 --- a/packages/app/src/desktop/daemon/desktop-daemon.ts +++ b/packages/app/src/desktop/daemon/desktop-daemon.ts @@ -302,3 +302,20 @@ export function readLegacySkillSelection(): Promise export async function deleteLegacySkillSelection(): Promise { await invokeDesktopCommand("delete_legacy_skill_selection"); } + +export interface DesktopSandboxDiagnostics { + enabled: boolean; + reason: string; +} + +export async function getDesktopSandboxDiagnostics(): Promise { + const result: unknown = await invokeDesktopCommand("desktop_sandbox_diagnostics"); + if ( + !isRecord(result) || + typeof result.enabled !== "boolean" || + typeof result.reason !== "string" + ) { + throw new Error("Unexpected desktop sandbox diagnostics response."); + } + return { enabled: result.enabled, reason: result.reason }; +} diff --git a/packages/app/src/diagnostics/desktop-diagnostic-report.test.ts b/packages/app/src/diagnostics/desktop-diagnostic-report.test.ts index 1ffa37b950..f243770490 100644 --- a/packages/app/src/diagnostics/desktop-diagnostic-report.test.ts +++ b/packages/app/src/diagnostics/desktop-diagnostic-report.test.ts @@ -6,6 +6,7 @@ import { function makeSources(): DesktopDiagnosticSources { return { + getSandboxDiagnostics: async () => ({ enabled: true, reason: "user namespaces available" }), getStatus: async () => ({ serverId: "server-1", status: "running", @@ -145,3 +146,20 @@ describe("desktop diagnostic report", () => { expect(report).toContain("Desktop app log tail\n Error: app log unavailable"); }); }); + +test("reports sandbox degradation and its reason even if daemon diagnostics fail", async () => { + const result = await collectDesktopDiagnosticSections({ + ...makeSources(), + getStatus: async () => { + throw new Error("daemon unavailable"); + }, + getSandboxDiagnostics: async () => ({ + enabled: false, + reason: "user namespaces unavailable; no usable SUID helper", + }), + }); + expect(result.sections.join("\n")).toContain( + "Chromium sandbox\n State: Disabled\n Reason: user namespaces unavailable; no usable SUID helper", + ); + expect(result.status).toBe("failed"); +}); diff --git a/packages/app/src/diagnostics/desktop-diagnostic-report.ts b/packages/app/src/diagnostics/desktop-diagnostic-report.ts index 531ae11fbb..22eb7e388f 100644 --- a/packages/app/src/diagnostics/desktop-diagnostic-report.ts +++ b/packages/app/src/diagnostics/desktop-diagnostic-report.ts @@ -1,4 +1,6 @@ import { + getDesktopSandboxDiagnostics, + type DesktopSandboxDiagnostics, getDesktopAppLogs, getDesktopDaemonLogs, getDesktopDaemonStatus, @@ -19,6 +21,7 @@ export interface DesktopDiagnosticCollectionResult { } export interface DesktopDiagnosticSources { + getSandboxDiagnostics: () => Promise; getStatus: () => Promise; getDaemonLogs: () => Promise; getAppLogs: () => Promise; @@ -26,6 +29,7 @@ export interface DesktopDiagnosticSources { } const DEFAULT_DESKTOP_DIAGNOSTIC_SOURCES: DesktopDiagnosticSources = { + getSandboxDiagnostics: getDesktopSandboxDiagnostics, getStatus: getDesktopDaemonStatus, getDaemonLogs: getDesktopDaemonLogs, getAppLogs: getDesktopAppLogs, @@ -38,12 +42,33 @@ export async function collectDesktopDiagnosticSections( const sections: string[] = []; let failed = false; - const [daemonResult, appLogsResult, updaterResult] = await Promise.allSettled([ + const [daemonResult, appLogsResult, updaterResult, sandboxResult] = await Promise.allSettled([ Promise.all([sources.getStatus(), sources.getDaemonLogs()]), sources.getAppLogs(), sources.getUpdaterDiagnostics(), + sources.getSandboxDiagnostics(), ]); + if (sandboxResult.status === "fulfilled") { + const sandbox = sandboxResult.value; + sections.push( + formatDiagnosticSection("Chromium sandbox", [ + { + label: "State", + value: sandbox.enabled ? "Enabled" : "Disabled", + }, + { label: "Reason", value: sandbox.reason }, + ]), + ); + } else { + failed = true; + sections.push( + formatDiagnosticSection("Chromium sandbox", [ + { label: "Error", value: toMessage(sandboxResult.reason) }, + ]), + ); + } + if (daemonResult.status === "fulfilled") { const [status, daemonLogs] = daemonResult.value; const appLogs = appLogsResult.status === "fulfilled" ? appLogsResult.value : null; diff --git a/packages/desktop/e2e/evidence/linux-sandbox/appimage-diagnostics.png b/packages/desktop/e2e/evidence/linux-sandbox/appimage-diagnostics.png new file mode 100644 index 0000000000000000000000000000000000000000..8bec53ca7efe80f223e79477129a824ec4794fad GIT binary patch literal 86015 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%0AX9$UUaCeenAAP0clRsgg=>+h~D^4V}%?d)N@K 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 literal 0 HcmV?d00001 diff --git a/packages/desktop/e2e/evidence/linux-sandbox/deb-diagnostics.png b/packages/desktop/e2e/evidence/linux-sandbox/deb-diagnostics.png new file mode 100644 index 0000000000000000000000000000000000000000..c901984ab865fa22ee08f7b5eb1698cc79c3c675 GIT binary patch literal 79777 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

|@0r1wN8)CFQ&HAlAQ!vE3V-I!(6?SPS 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 literal 0 HcmV?d00001 diff --git a/packages/desktop/e2e/linux-artifact-smoke.js b/packages/desktop/e2e/linux-artifact-smoke.js new file mode 100644 index 0000000000..77bca8bb51 --- /dev/null +++ b/packages/desktop/e2e/linux-artifact-smoke.js @@ -0,0 +1,59 @@ +// Observe published Linux artifacts without repairing their sandbox permissions. +const fs = require("node:fs"); +const os = require("node:os"); +const path = require("node:path"); +const { execFileSync } = require("node:child_process"); +const { smokePackagedDesktopApp } = require("./packaged-app-smoke.js"); + +async function main() { + if (process.getuid() === 0) throw new Error("Launch the smoke as an unprivileged user"); + const release = path.resolve(process.argv[2]); + const portableSandbox = process.argv[3] === "enabled"; + const artifactRoot = process.env.PASEO_DESKTOP_SMOKE_ARTIFACT_DIR; + const extracted = fs.mkdtempSync(path.join(os.tmpdir(), "paseo-linux-artifacts-")); + const findArtifact = (suffix) => { + const matches = fs.readdirSync(release).filter((file) => file.endsWith(suffix)); + if (matches.length !== 1) throw new Error(`Expected one ${suffix} in ${release}: ${matches}`); + return path.join(release, matches[0]); + }; + try { + process.env.PASEO_DESKTOP_SMOKE_ARTIFACT_DIR = path.join(artifactRoot, "deb"); + const helper = fs.statSync("/opt/Paseo/chrome-sandbox"); + if (helper.uid !== 0 || (helper.mode & 0o7777) !== 0o4755) { + throw new Error("Installed .deb did not provide a root-owned 4755 helper"); + } + await smokePackagedDesktopApp({ appPath: "/opt/Paseo", expectedSandbox: true }); + + const appImage = findArtifact(".AppImage"); + fs.chmodSync(appImage, 0o755); + execFileSync(appImage, ["--appimage-extract"], { cwd: extracted, stdio: "ignore" }); + const appDir = path.join(extracted, "squashfs-root"); + const desktopEntry = fs.readFileSync(path.join(appDir, "Paseo.desktop"), "utf8"); + if (/^Exec=.*--no-sandbox/m.test(desktopEntry)) { + throw new Error("AppImage desktop entry bypasses runtime sandbox policy"); + } + process.env.PASEO_DESKTOP_SMOKE_ARTIFACT_DIR = path.join(artifactRoot, "appimage"); + await smokePackagedDesktopApp({ + appPath: appDir, + executablePath: appImage, + launchArgs: ["--appimage-extract-and-run"], + expectedSandbox: portableSandbox, + }); + + const tarDir = path.join(extracted, "tar"); + fs.mkdirSync(tarDir); + execFileSync("tar", ["-xzf", findArtifact(".tar.gz"), "-C", tarDir]); + const appPath = fs.existsSync(path.join(tarDir, "Paseo")) + ? tarDir + : path.join(tarDir, fs.readdirSync(tarDir)[0]); + process.env.PASEO_DESKTOP_SMOKE_ARTIFACT_DIR = path.join(artifactRoot, "tar"); + await smokePackagedDesktopApp({ appPath, expectedSandbox: portableSandbox }); + } finally { + fs.rmSync(extracted, { recursive: true, force: true }); + } +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/packages/desktop/e2e/packaged-app-smoke.js b/packages/desktop/e2e/packaged-app-smoke.js index b07b75df4d..58ce0af119 100644 --- a/packages/desktop/e2e/packaged-app-smoke.js +++ b/packages/desktop/e2e/packaged-app-smoke.js @@ -67,52 +67,17 @@ function getMacMainExecutablePath(appPath) { return path.join(appPath, "Contents", "MacOS", EXECUTABLE_NAME); } -function ensureLinuxSandboxPermissions(appPath) { - if (process.platform !== "linux") { - return; - } - - const sandboxPath = path.join(appPath, "chrome-sandbox"); - if (!fs.existsSync(sandboxPath)) { - throw new Error(`Chromium sandbox helper does not exist: ${sandboxPath}`); - } - - const hasRequiredPermissions = () => { - const stat = fs.statSync(sandboxPath); - return stat.uid === 0 && (stat.mode & 0o7777) === 0o4755; - }; - if (hasRequiredPermissions()) { - return; - } - - const chown = spawnSync("sudo", ["-n", "chown", "root:root", sandboxPath], { - encoding: "utf8", - }); - const chmod = - chown.status === 0 - ? spawnSync("sudo", ["-n", "chmod", "4755", sandboxPath], { encoding: "utf8" }) - : null; - if (chown.error || chown.status !== 0 || chmod?.error || chmod?.status !== 0) { - throw new Error( - `Failed to configure Chromium sandbox helper ${sandboxPath}. Run: sudo chown root:root ${sandboxPath} && sudo chmod 4755 ${sandboxPath}.\n${chown.stderr?.trim() || chmod?.stderr?.trim() || chown.error || chmod?.error || "Permissions remained incorrect."}`, - ); - } - if (!hasRequiredPermissions()) { - throw new Error(`Chromium sandbox helper permissions remained incorrect: ${sandboxPath}`); - } -} - -function getLaunchCommand(executablePath) { +function getLaunchCommand(executablePath, args) { if (process.platform !== "linux") { return { command: executablePath, - args: [], + args, }; } return { command: "xvfb-run", - args: ["-a", "--server-args=-screen 0 1280x800x24", executablePath], + args: ["-a", "--server-args=-screen 0 1280x800x24", executablePath, ...args], }; } @@ -315,7 +280,7 @@ function formatLogs({ stdout, stderr, userData, daemonHome }) { ].join("\n\n"); } -async function writeFailureArtifacts({ page, stdout, stderr, userData, daemonHome, error }) { +async function writeSmokeArtifacts({ page, stdout, stderr, userData, daemonHome, error }) { const artifactDir = process.env.PASEO_DESKTOP_SMOKE_ARTIFACT_DIR?.trim(); if (!artifactDir) { return; @@ -323,13 +288,15 @@ async function writeFailureArtifacts({ page, stdout, stderr, userData, daemonHom fs.mkdirSync(artifactDir, { recursive: true }); fs.writeFileSync( - path.join(artifactDir, "failure.txt"), - `${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n\n${formatLogs({ - stdout, - stderr, - userData, - daemonHome, - })}\n`, + path.join(artifactDir, error ? "failure.txt" : "success.txt"), + `${error instanceof Error ? (error.stack ?? error.message) : String(error ?? "Packaged desktop smoke passed")}\n\n${formatLogs( + { + stdout, + stderr, + userData, + daemonHome, + }, + )}\n`, ); const desktopLog = readIfExists(path.join(userData, "logs", "main.log")); @@ -805,10 +772,73 @@ async function stopCliDaemon({ appPath, env }) { }); } -async function smokePackagedDesktopApp({ appPath }) { - const executablePath = getExecutablePath(appPath); +async function openSmokeWorkspace({ appPath, env, page, daemonHome }) { + const projectPath = path.join(daemonHome, "sandbox-smoke-project"); + fs.mkdirSync(projectPath); + fs.writeFileSync(path.join(projectPath, "README.md"), "Packaged Linux sandbox smoke\n"); + const workspace = await runCliShimJsonCommand({ + appPath, + env, + args: [ + "workspace", + "create", + "--isolation", + "local", + "--path", + projectPath, + "--title", + "Sandbox smoke workspace", + ], + label: "Create packaged smoke workspace", + }); + await page.getByRole("button", { name: "Sandbox smoke workspace", exact: true }).click(); + await page.waitForURL((url) => url.pathname.endsWith(`/workspace/${workspace.workspaceId}`)); + await page.getByRole("textbox", { name: "Message agent..." }).click(); + console.log(`Packaged desktop smoke: renderer opened workspace ${workspace.workspaceId}`); +} + +async function assertSandboxState({ browser, page, expectedSandbox, stdout, stderr }) { + const diagnostics = await page.evaluate(() => + window.paseoDesktop.invoke("desktop_sandbox_diagnostics"), + ); + if (diagnostics.enabled !== expectedSandbox) { + throw new Error( + `Unexpected sandbox decision: ${JSON.stringify(diagnostics)}; expected enabled=${expectedSandbox}`, + ); + } + if (!stdout.join("").includes("[desktop] app startup")) { + throw new Error("Missing production app startup log"); + } + const session = await browser.newBrowserCDPSession(); + const { processInfo } = await session.send("SystemInfo.getProcessInfo"); + await session.detach(); + const renderers = processInfo.filter((info) => info.type === "renderer"); + if (renderers.length === 0) throw new Error("No renderer process found"); + for (const renderer of renderers) { + const status = fs.readFileSync(`/proc/${renderer.id}/status`, "utf8"); + const security = status + .split("\n") + .filter((line) => /^(NoNewPrivs|Seccomp|Uid|Gid):/.test(line)) + .join("; "); + const report = `Sandbox evidence: enabled=${expectedSandbox}; ${diagnostics.reason}; renderer ${renderer.id}: ${security}`; + console.log(report); + stdout.push(`${report}\n`); + if ( + expectedSandbox && + (!/^NoNewPrivs:\s+1$/m.test(status) || !/^Seccomp:\s+2$/m.test(status)) + ) { + throw new Error(`Renderer lacks OS sandbox: ${report}\n${stderr.join("")}`); + } + } +} + +async function smokePackagedDesktopApp({ + appPath, + executablePath = getExecutablePath(appPath), + launchArgs = [], + expectedSandbox, +}) { assertExecutable(executablePath, "Packaged app executable"); - ensureLinuxSandboxPermissions(appPath); await smokeColdCliDaemonStart({ appPath }); const userData = createTempDir("paseo-smoke-user-data-"); @@ -832,7 +862,7 @@ async function smokePackagedDesktopApp({ appPath }) { const stdout = []; const stderr = []; - const launch = getLaunchCommand(executablePath); + const launch = getLaunchCommand(executablePath, launchArgs); console.log(`Packaged desktop smoke: launching ${launch.command} ${launch.args.join(" ")}`); const child = spawn(launch.command, launch.args, { detached: process.platform !== "win32", @@ -884,12 +914,17 @@ async function smokePackagedDesktopApp({ appPath }) { console.log("Packaged desktop smoke: renderer-started desktop daemon reported running"); await smokeCliShim({ appPath, env }); await smokeCliTerminal({ appPath, env }); + if (expectedSandbox !== undefined) { + await assertSandboxState({ browser, page, expectedSandbox, stdout, stderr }); + await openSmokeWorkspace({ appPath, env, page, daemonHome }); + } + await writeSmokeArtifacts({ page, stdout, stderr, userData, daemonHome }); await stopDaemonForCleanup(); console.log( `Packaged desktop smoke passed: real renderer and preload loaded; renderer-started desktop daemon pid ${status.pid}, listen ${status.listen}; CLI shim daemon status and terminal smoke succeeded`, ); } catch (error) { - await writeFailureArtifacts({ page, stdout, stderr, userData, daemonHome, error }).catch( + await writeSmokeArtifacts({ page, stdout, stderr, userData, daemonHome, error }).catch( (artifactError) => { console.warn(`Packaged desktop smoke: failed to write failure artifacts: ${artifactError}`); }, diff --git a/packages/desktop/electron-builder.yml b/packages/desktop/electron-builder.yml index 5fa62ef91a..fb01c7b194 100644 --- a/packages/desktop/electron-builder.yml +++ b/packages/desktop/electron-builder.yml @@ -66,7 +66,13 @@ linux: - deb - rpm - tar.gz +deb: + afterInstall: scripts/linux-sandbox/after-install.tpl +rpm: + afterInstall: scripts/linux-sandbox/after-install.tpl appImage: + # A nonempty argument list replaces builder's hardcoded --no-sandbox default. + executableArgs: ["--class=Paseo"] # Keep the AppImage filename stable across versions (no ${version}) so # electron-updater overwrites the file in place instead of renaming it to a new # versioned path. A rename orphans the old binary, breaks desktop shortcuts, and diff --git a/packages/desktop/scripts/after-pack.js b/packages/desktop/scripts/after-pack.js index e5222d68fe..9826a6a1e9 100644 --- a/packages/desktop/scripts/after-pack.js +++ b/packages/desktop/scripts/after-pack.js @@ -3,6 +3,8 @@ const path = require("path"); const { smokePackagedDesktopApp } = require("../e2e/packaged-app-smoke.js"); +const { installLinuxLauncher } = require("./linux-sandbox"); + const EXECUTABLE_NAME = "Paseo"; // electron-builder arch enum → Node.js arch string @@ -115,6 +117,10 @@ exports.default = async function afterPack(context) { pruneNativeModules(context.appOutDir, platform, arch); + if (platform === "linux") { + installLinuxLauncher(context.appOutDir); + } + if (platform === "linux" || platform === "win32") { if (arch !== process.arch) { console.log( diff --git a/packages/desktop/scripts/linux-sandbox/after-install.tpl b/packages/desktop/scripts/linux-sandbox/after-install.tpl new file mode 100644 index 0000000000..5723ea065b --- /dev/null +++ b/packages/desktop/scripts/linux-sandbox/after-install.tpl @@ -0,0 +1,54 @@ +#!/bin/bash + +if type update-alternatives >/dev/null 2>&1; then + # Remove previous link if it doesn't use update-alternatives + if [ -L '/usr/bin/${executable}' -a -e '/usr/bin/${executable}' -a "`readlink '/usr/bin/${executable}'`" != '/etc/alternatives/${executable}' ]; then + rm -f '/usr/bin/${executable}' + fi + update-alternatives --install '/usr/bin/${executable}' '${executable}' '/opt/${sanitizedProductName}/${executable}' 100 || ln -sf '/opt/${sanitizedProductName}/${executable}' '/usr/bin/${executable}' +else + ln -sf '/opt/${sanitizedProductName}/${executable}' '/usr/bin/${executable}' +fi + +# Package installation runs as root, whose namespace access says nothing about +# the desktop user under AppArmor. Always provide Chromium's SUID alternative. +chown root:root '/opt/${sanitizedProductName}/chrome-sandbox' || exit 1 +chmod 4755 '/opt/${sanitizedProductName}/chrome-sandbox' || exit 1 + +if hash update-mime-database 2>/dev/null; then + update-mime-database /usr/share/mime || true +fi + +if hash update-desktop-database 2>/dev/null; then + update-desktop-database /usr/share/applications || true +fi + +# Install apparmor profile. (Ubuntu 24+) +# First check if the version of AppArmor running on the device supports our profile. +# This is in order to keep backwards compatibility with Ubuntu 22.04 which does not support abi/4.0. +# In that case, we just skip installing the profile since the app runs fine without it on 22.04. +# +# Those apparmor_parser flags are akin to performing a dry run of loading a profile. +# https://wiki.debian.org/AppArmor/HowToUse#Dumping_profiles +# +# Unfortunately, at the moment AppArmor doesn't have a good story for backwards compatibility. +# https://askubuntu.com/questions/1517272/writing-a-backwards-compatible-apparmor-profile +if apparmor_status --enabled > /dev/null 2>&1; then + APPARMOR_PROFILE_SOURCE='/opt/${sanitizedProductName}/resources/apparmor-profile' + APPARMOR_PROFILE_TARGET='/etc/apparmor.d/${executable}' + if apparmor_parser --skip-kernel-load --debug "$APPARMOR_PROFILE_SOURCE" > /dev/null 2>&1; then + cp -f "$APPARMOR_PROFILE_SOURCE" "$APPARMOR_PROFILE_TARGET" + + # Updating the current AppArmor profile is not possible and probably not meaningful in a chroot'ed environment. + # Use cases are for example environments where images for clients are maintained. + # There, AppArmor might correctly be installed, but live updating makes no sense. + if ! { [ -x '/usr/bin/ischroot' ] && /usr/bin/ischroot; } && hash apparmor_parser 2>/dev/null; then + # Extra flags taken from dh_apparmor: + # > By using '-W -T' we ensure that any abstraction updates are also pulled in. + # https://wiki.debian.org/AppArmor/Contribute/FirstTimeProfileImport + apparmor_parser --replace --write-cache --skip-read-cache "$APPARMOR_PROFILE_TARGET" + fi + else + echo "Skipping the installation of the AppArmor profile as this version of AppArmor does not seem to support the bundled profile" + fi +fi diff --git a/packages/desktop/scripts/linux-sandbox/index.js b/packages/desktop/scripts/linux-sandbox/index.js new file mode 100644 index 0000000000..f641e721c2 --- /dev/null +++ b/packages/desktop/scripts/linux-sandbox/index.js @@ -0,0 +1,12 @@ +const fs = require("node:fs"); +const path = require("node:path"); + +// Keep one pre-Chromium entrypoint for AppRun, desktop entries, updates, and tarballs. +exports.installLinuxLauncher = function installLinuxLauncher(appOutDir) { + const launcher = path.join(appOutDir, "Paseo"); + if (!fs.existsSync(`${launcher}.bin`)) { + fs.renameSync(launcher, `${launcher}.bin`); + } + fs.copyFileSync(path.join(__dirname, "launcher.sh"), launcher); + fs.chmodSync(launcher, 0o755); +}; diff --git a/packages/desktop/scripts/linux-sandbox/launcher.sh b/packages/desktop/scripts/linux-sandbox/launcher.sh new file mode 100644 index 0000000000..8f0b6a609f --- /dev/null +++ b/packages/desktop/scripts/linux-sandbox/launcher.sh @@ -0,0 +1,55 @@ +#!/bin/sh +set -eu + +# Resolve /usr/bin alternatives and user-created symlinks before finding Electron. +launcher=$(readlink -f -- "$0") +executable="${launcher}.bin" + +# Node entrypoints are not Chromium processes. Never inject browser flags here. +if [ "${ELECTRON_RUN_AS_NODE:-}" = 1 ]; then + exec "$executable" "$@" +fi + +for arg in "$@"; do + if [ "$arg" = '--no-sandbox' ]; then + export PASEO_DESKTOP_SANDBOX_REASON='requested by --no-sandbox' + printf '[linux-sandbox] disabled: %s\n' "$PASEO_DESKTOP_SANDBOX_REASON" >&2 || true + exec "$executable" "$@" + fi +done + +# Match main's whitespace-separated debugging flags without evaluating shell code. +set -f +for flag in ${PASEO_ELECTRON_FLAGS:-}; do + if [ "$flag" = '--no-sandbox' ]; then + export PASEO_DESKTOP_SANDBOX_REASON='requested by PASEO_ELECTRON_FLAGS' + printf '[linux-sandbox] disabled: %s\n' "$PASEO_DESKTOP_SANDBOX_REASON" >&2 || true + exec "$executable" --no-sandbox "$@" + fi +done + +# Map the real UID and create a network namespace as Chromium does. A bare +# unshare --user can succeed under AppArmor while namespace capabilities fail. +if namespace_error=$(unshare --user --map-root-user --net true 2>&1); then + export PASEO_DESKTOP_SANDBOX_REASON='user namespaces available' + printf '[linux-sandbox] enabled: %s\n' "$PASEO_DESKTOP_SANDBOX_REASON" >&2 || true + exec "$executable" "$@" +fi + +helper="$(dirname -- "$launcher")/chrome-sandbox" +if [ -x "$helper" ] && [ "$(stat -Lc '%u:%a' -- "$helper")" = '0:4755' ] && + grep -q '^NoNewPrivs:[[:space:]]*0$' /proc/self/status; then + mount_options=$(findmnt -n -o VFS-OPTIONS --target "$helper" 2>/dev/null || true) + case ",$mount_options," in + *,nosuid,*|,,) ;; + *) + export PASEO_DESKTOP_SANDBOX_REASON='root-owned SUID helper available' + printf '[linux-sandbox] enabled: %s\n' "$PASEO_DESKTOP_SANDBOX_REASON" >&2 || true + exec "$executable" "$@" + ;; + esac +fi + +export PASEO_DESKTOP_SANDBOX_REASON="user namespaces unavailable${namespace_error:+ ($namespace_error)}; no usable SUID helper" +printf '[linux-sandbox] disabled: %s\n' "$PASEO_DESKTOP_SANDBOX_REASON" >&2 || true +exec "$executable" --no-sandbox "$@" diff --git a/packages/desktop/src/daemon/daemon-manager.ts b/packages/desktop/src/daemon/daemon-manager.ts index 4d3e5531eb..3b7fde15f8 100644 --- a/packages/desktop/src/daemon/daemon-manager.ts +++ b/packages/desktop/src/daemon/daemon-manager.ts @@ -37,6 +37,7 @@ import { import type { DesktopSettings } from "../settings/desktop-settings.js"; import { getDesktopSettingsStore } from "../settings/desktop-settings-electron.js"; import { isRunningUnderARM64Translation } from "../system/arm64-translation.js"; +import { describeSandbox } from "../diagnostics/sandbox.js"; import { getDesktopAppLogs } from "../diagnostics/app-logs.js"; import { getDesktopUpdaterDiagnostics } from "../diagnostics/updater.js"; import { @@ -531,6 +532,11 @@ export function createDaemonCommandHandlers(): Record stopDesktopDaemon(parseDesktopDaemonStopReason(args)), restart_desktop_daemon: () => restartDaemon(), desktop_daemon_logs: () => getDaemonLogs(), + desktop_sandbox_diagnostics: () => + describeSandbox({ + disabled: app.commandLine.hasSwitch("no-sandbox"), + launcherReason: process.env.PASEO_DESKTOP_SANDBOX_REASON, + }), desktop_app_logs: () => getDesktopAppLogs(), desktop_update_diagnostics: () => getDesktopUpdaterDiagnostics(), desktop_get_system_idle_time: () => powerMonitor.getSystemIdleTime() * 1000, diff --git a/packages/desktop/src/daemon/desktop-packaging.test.ts b/packages/desktop/src/daemon/desktop-packaging.test.ts index c58c3f05e4..f38e679d3e 100644 --- a/packages/desktop/src/daemon/desktop-packaging.test.ts +++ b/packages/desktop/src/daemon/desktop-packaging.test.ts @@ -177,3 +177,16 @@ describe("desktop packaging", () => { } }); }); + +it("installs the Linux helper as root-owned 4755 regardless of root's namespace access", () => { + const config = readFileSync(join(packageRoot, "electron-builder.yml"), "utf8"); + expect(config).toContain("afterInstall: scripts/linux-sandbox/after-install.tpl"); + const installer = readFileSync( + join(packageRoot, "scripts/linux-sandbox/after-install.tpl"), + "utf8", + ); + expect(installer).not.toContain("unshare"); + expect(installer).toContain("chown root:root '/opt/${sanitizedProductName}/chrome-sandbox'"); + expect(installer).toContain("chmod 4755 '/opt/${sanitizedProductName}/chrome-sandbox'"); + expect(installer).not.toContain("chmod 0755"); +}); diff --git a/packages/desktop/src/daemon/linux-launcher.posix.test.ts b/packages/desktop/src/daemon/linux-launcher.posix.test.ts new file mode 100644 index 0000000000..ba7a8ec02b --- /dev/null +++ b/packages/desktop/src/daemon/linux-launcher.posix.test.ts @@ -0,0 +1,123 @@ +import { spawnSync } from "node:child_process"; +import { chmodSync, mkdirSync, mkdtempSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; +import { createRequire } from "node:module"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { expect, test } from "vitest"; + +// The launcher reads Linux /proc state as well as POSIX command interfaces. +const it = test.runIf(process.platform === "linux"); + +const require = createRequire(import.meta.url); +const afterPack = require("../../scripts/after-pack.js").default; + +async function launch( + options: { + namespaces?: boolean; + helper?: string; + mount?: string; + env?: NodeJS.ProcessEnv; + args?: string[]; + symlink?: boolean; + rerun?: boolean; + } = {}, +) { + const root = mkdtempSync(join(tmpdir(), "paseo-launcher-")); + try { + const app = join(root, "app with spaces"); + const commands = join(root, "commands"); + mkdirSync(app); + mkdirSync(commands); + writeFileSync( + join(app, "Paseo"), + `#!${process.execPath}\nconsole.log(JSON.stringify(process.argv.slice(2)));\n`, + ); + chmodSync(join(app, "Paseo"), 0o755); + // The command interface represents the host's userns policy, independent of CI's host. + writeFileSync(join(commands, "unshare"), `#!/bin/sh\nexit ${options.namespaces ? 0 : 1}\n`); + chmodSync(join(commands, "unshare"), 0o755); + for (const [name, output] of Object.entries({ + stat: options.helper ?? "1000:755", + findmnt: options.mount ?? "rw", + })) { + writeFileSync(join(commands, name), `#!/bin/sh\nprintf '%s\\n' '${output}'\n`); + chmodSync(join(commands, name), 0o755); + } + writeFileSync(join(app, "chrome-sandbox"), "helper"); + chmodSync(join(app, "chrome-sandbox"), 0o755); + await afterPack({ appOutDir: app, electronPlatformName: "linux", arch: 1 }); + if (options.rerun) await afterPack({ appOutDir: app, electronPlatformName: "linux", arch: 1 }); + const executablePath = options.symlink ? join(root, "paseo") : join(app, "Paseo"); + if (options.symlink) symlinkSync(join(app, "Paseo"), executablePath); + const args = options.args ?? ["path with spaces", "$(touch never)", "semi;colon", "*.txt"]; + const result = spawnSync(executablePath, args, { + encoding: "utf8", + env: { + ...process.env, + FORCE_COLOR: undefined, + PATH: `${commands}:${process.env.PATH}`, + APPIMAGE: "/tmp/Paseo.AppImage", + PASEO_DESKTOP_SMOKE: "0", + ...options.env, + }, + }); + expect(result.status, result.stderr).toBe(0); + return { args: JSON.parse(result.stdout), stderr: result.stderr, input: args }; + } finally { + rmSync(root, { recursive: true, force: true }); + } +} + +it("launches a portable app with the fallback on argv when user namespaces are denied", async () => { + const result = await launch(); + expect(result.args).toEqual(["--no-sandbox", ...result.input]); + expect(result.stderr).toContain("[linux-sandbox] disabled"); +}); + +it("keeps sandboxing for AppImage when the real user can create namespaces", async () => { + const result = await launch({ namespaces: true }); + expect(result.args).toEqual(result.input); + expect(result.stderr).toContain("[linux-sandbox] enabled: user namespaces available"); +}); + +it("keeps sandboxing via the installed root-owned helper when userns is denied", async () => { + const result = await launch({ helper: "0:4755", env: { APPIMAGE: "" } }); + expect(result.args).toEqual(result.input); + expect(result.stderr).toContain("[linux-sandbox] enabled: root-owned SUID helper available"); +}); + +it("does not trust 4755 on a nosuid mount", async () => { + const result = await launch({ helper: "0:4755", mount: "rw,nosuid,nodev" }); + expect(result.args).toEqual(["--no-sandbox", ...result.input]); +}); + +it("preserves sandbox flags and all Node entrypoint arguments without probing", async () => { + const result = await launch({ env: { ELECTRON_RUN_AS_NODE: "1" }, args: ["--version"] }); + expect(result.args).toEqual(["--version"]); + expect(result.stderr).toBe(""); +}); + +it("reports an explicit user override without injecting a duplicate", async () => { + const result = await launch({ namespaces: true, args: ["--no-sandbox", "--version"] }); + expect(result.args).toEqual(result.input); + expect(result.stderr).toContain("[linux-sandbox] disabled: requested by --no-sandbox"); +}); + +it("resolves symlink launches and keeps the real executable intact on repeated packaging", async () => { + const result = await launch({ symlink: true, rerun: true }); + expect(result.args).toEqual(["--no-sandbox", ...result.input]); +}); + +it("does not depend on APPIMAGE being present for an extracted portable app", async () => { + const result = await launch({ env: { APPIMAGE: "" } }); + expect(result.args).toEqual(["--no-sandbox", ...result.input]); +}); + +it("applies a debugging environment sandbox override before Chromium starts", async () => { + const result = await launch({ + namespaces: true, + env: { PASEO_ELECTRON_FLAGS: "--disable-gpu\t--no-sandbox" }, + }); + expect(result.args).toEqual(["--no-sandbox", ...result.input]); + expect(result.stderr).toContain("requested by PASEO_ELECTRON_FLAGS"); +}); diff --git a/packages/desktop/src/diagnostics/sandbox.test.ts b/packages/desktop/src/diagnostics/sandbox.test.ts new file mode 100644 index 0000000000..e9e80040ca --- /dev/null +++ b/packages/desktop/src/diagnostics/sandbox.test.ts @@ -0,0 +1,25 @@ +import { expect, it } from "vitest"; +import { describeSandbox } from "./sandbox"; + +it("reports a portable fallback independently of the renderer's Node isolation setting", () => { + expect( + describeSandbox({ + disabled: true, + launcherReason: "user namespaces unavailable; no usable SUID helper", + }), + ).toEqual({ + enabled: false, + reason: "user namespaces unavailable; no usable SUID helper", + }); +}); + +it("reports enabled defaults and explicit overrides without a packaged launcher", () => { + expect(describeSandbox({ disabled: false })).toEqual({ + enabled: true, + reason: "Chromium default", + }); + expect(describeSandbox({ disabled: true })).toEqual({ + enabled: false, + reason: "requested by --no-sandbox", + }); +}); diff --git a/packages/desktop/src/diagnostics/sandbox.ts b/packages/desktop/src/diagnostics/sandbox.ts new file mode 100644 index 0000000000..af10c25397 --- /dev/null +++ b/packages/desktop/src/diagnostics/sandbox.ts @@ -0,0 +1,10 @@ +export function describeSandbox(input: { disabled: boolean; launcherReason?: string }): { + enabled: boolean; + reason: string; +} { + return { + enabled: !input.disabled, + reason: + input.launcherReason ?? (input.disabled ? "requested by --no-sandbox" : "Chromium default"), + }; +} diff --git a/packages/desktop/src/main.ts b/packages/desktop/src/main.ts index 64cf4a9519..63ab83281a 100644 --- a/packages/desktop/src/main.ts +++ b/packages/desktop/src/main.ts @@ -330,13 +330,6 @@ if (forcedUserDataDir) { } } -// AppImage runtimes mount the app from /tmp under the user's UID, so the SUID -// chrome-sandbox helper we ship in .deb/.rpm cannot work there. Disable the -// sandbox only in that case; .deb/.rpm keep the sandbox on, matching VS Code. -if (process.platform === "linux" && process.env.APPIMAGE) { - app.commandLine.appendSwitch("no-sandbox"); -} - // Allow users to pass Chromium flags via PASEO_ELECTRON_FLAGS for debugging // rendering issues (e.g. "--disable-gpu --ozone-platform=x11"). // Must run before app.whenReady(). @@ -349,6 +342,16 @@ if (electronFlags) { log.info("[electron-flags]", electronFlags); } +if (process.platform === "linux") { + // Keep the desktop/dock identity independent of the wrapped Electron filename. + app.setDesktopName("Paseo.desktop"); + if (!app.commandLine.hasSwitch("class")) app.commandLine.appendSwitch("class", "Paseo"); + log.info("[linux-sandbox]", { + enabled: !app.commandLine.hasSwitch("no-sandbox"), + reason: process.env.PASEO_DESKTOP_SANDBOX_REASON ?? "Chromium default", + }); +} + let pendingOpenProjectPath = parseOpenProjectPathFromArgv({ argv: process.argv, isDefaultApp: process.defaultApp, diff --git a/public-docs/index.md b/public-docs/index.md index 7bf22016a4..f93216883d 100644 --- a/public-docs/index.md +++ b/public-docs/index.md @@ -16,6 +16,27 @@ Download from [paseo.sh/download](https://paseo.sh/download) or the [GitHub rele The desktop app bundles its own daemon and starts it automatically, no separate install required. On first launch you'll see a brief startup screen, then connect from your phone using **Settings → your host → Pair Device**. +### Linux + +Use the `.deb` on Debian/Ubuntu or the `.rpm` on Fedora to keep Chromium's sandbox available even when your distribution restricts user namespaces. The installer configures the bundled sandbox helper; you do not need to change system security settings. + +For an AppImage, make the download executable and open it: + +```bash +chmod +x Paseo-x86_64.AppImage +./Paseo-x86_64.AppImage +``` + +If it reports `error loading libfuse.so.2`, run without FUSE: + +```bash +./Paseo-x86_64.AppImage --appimage-extract-and-run +``` + +Alternatively, install `libfuse2t64` on Ubuntu 24.04 or newer (`sudo apt install libfuse2t64`), or your distribution's FUSE 2 compatibility package. This dependency belongs to the AppImage runtime, before Paseo starts. + +Paseo checks sandbox availability each time it launches. AppImage and extracted tar archives retain sandboxing when user namespaces work. On a restricted host without a usable installed helper, they launch with Chromium's sandbox disabled. Prefer the installed package if you require OS process isolation. **Settings → Diagnostics → App Diagnostics** reports the sandbox state and reason; the desktop log records the same decision. An explicit `--no-sandbox` argument overrides the automatic choice. + ## Server / CLI For headless machines, dev boxes, or any setup where you want the daemon running without the desktop UI: