Commit Graph

208 Commits (fc6282e8657de639812e69ecfc56139f70cd925c)

Author SHA1 Message Date
Alexander Larsson 368eb5f304 utils: Add xdg_app_supports_bundles
This uses some hacks to check at runtime if ostree is new enough
to support making bundles.
2015-11-10 11:57:30 +01:00
Alexander Larsson d3b207a0d6 Create custom /etc/passwd and /etc/group with minimal content
There is no particular reason to leak the entire host passwd and group
files, as only the users uid/gid is mapped anyway. If fact, injecting
the tty group while also not being allowed to chmod the pty to that group
will make grantpt() fail.
2015-10-26 17:23:31 +01:00
Christian Hergert f06a09b0f9 helper: unblock SIGCHILD before execvp() of child
We don't want to block SIGCHILD from being handled by the child process,
as that could be necessary for g_child_watch_add(), waitpid(), or similar.
2015-10-26 09:07:04 +01:00
Christian Hergert f83224c948 helper: match whitespace to other options 2015-10-26 09:07:04 +01:00
Christian Hergert 14bd531121 helper: give xdg-app process access to /dev/ptmx
This is needed for posix_openpt() to locate the proper ptmx path. We can
just symlink into /dev/pts/ptmx which is already in the mount namespace.
2015-10-26 09:07:04 +01:00
Alexander Larsson 64d7c00045 Move dbus invocation peer app detection to lib/ 2015-10-21 10:23:37 +02:00
Alexander Larsson 477de4c217 Always remove all leftover app/runtime traces on uninstall
Even if there is no deploy directory we make sure to remove any
refs with the same name in the repo, and purge the repo.
2015-10-19 10:41:47 +02:00
Alexander Larsson 9855ac23b4 utils: Add xdg_app_decompose_ref() 2015-10-19 10:41:47 +02:00
Alexander Larsson c26510295f helper: Also copy extra symlinks from / 2015-10-05 11:24:40 +02:00
Alexander Larsson dbc92635cc helper: Correctly zero terminate symlink targets 2015-10-05 11:24:26 +02:00
Alexander Larsson 208eb7b1aa Propagate Xauthority details to the sandbox if X11 is enabled
Some xservers out there (like xorg 1.17.1) have a broken server interpreted
local xauth, which causes apps to fail to connect to the xserver.
This fixes that by propagating Xauthority data such as the MIT-MAGIC-COOKIE-1.
2015-10-01 21:23:23 +02:00
Alexander Larsson eedbeab9d0 helper: Handle existing mounts with escaped characters 2015-10-01 18:59:32 +02:00
Alexander Larsson 279558b6bf cleanup: Simplify code using xdg_app_fail 2015-09-28 16:54:24 +02:00
Alexander Larsson b08f650b07 Add --nofilesystem commandline arg 2015-09-25 17:04:50 +02:00
Alexander Larsson dc6c6826ab utils: Add xdg_app_fail 2015-09-25 17:04:32 +02:00
Alexander Larsson afda9d54c4 list-apps/runtimes: User table printer 2015-09-24 21:36:35 +02:00
Alexander Larsson 66e61764f3 list-remotes: Add support for listing both user and system remotes 2015-09-24 21:36:35 +02:00
Alexander Larsson c40f2ad74e Move table printer to xdg-app-utils.c 2015-09-24 21:36:35 +02:00
Alexander Larsson 41af86dc69 Add xdg-app enter command
This lets you enter a sandbox and run a command there, which is useful
for debugging purposes.
2015-09-24 19:23:24 +02:00
Alexander Larsson 1917e1fd38 Make seccomp optional
Several architectures does not have seccomp yet.
2015-09-24 14:57:53 +02:00
Alexander Larsson 3240ac6d3f remove some unused code 2015-09-23 13:54:25 +02:00
Alexander Larsson 752b1a0a4b run: Fix handling of which filesystems you can access 2015-09-23 13:53:04 +02:00
Alexander Larsson 727f50e923 xdg-app build: Support extensions 2015-09-22 13:57:20 +02:00
Alexander Larsson 3334c08f6e run: When creating /etc symlinks, don't make symlinks to symlinks
Instead we just copy the original symlink. This makes things like
/etc/localtime symlink value parsing work.
2015-09-21 10:43:10 +02:00
Alexander Larsson 5e6960353d Mount nvidia device nodes in sandbox if dri allowed 2015-09-18 14:15:56 +02:00
Alexander Larsson 5065e431a2 run: Allow perf and ptrace in debug and build mode.
Without this you can't e.g. run a debugger or profiler in the sandbox.
2015-09-18 14:11:15 +02:00
Alexander Larsson 645c433960 Fix distcheck issues 2015-09-17 20:24:04 +02:00
Alexander Larsson f866097c94 Add XdgAppChainInputStream based on ostree version
This should really be in some library, but lets just copy it for now.
2015-09-17 15:27:04 +02:00
Alexander Larsson 7c788adb20 lib: Handle libsoup now having built-in autocleanup support 2015-09-17 10:56:14 +02:00
Alexander Larsson 7ef861cedf Add new override builtin to override app permissions 2015-09-11 16:07:31 +02:00
Alexander Larsson c87e7e4e4f create dirs with 755, not 777 2015-09-11 15:30:39 +02:00
Alexander Larsson 9d1cfd7688 run: Support system overrides as well as per-user 2015-09-11 13:01:39 +02:00
Alexander Larsson c702fa2555 XdgAppContext: Always initialize bitfields 2015-09-11 13:01:06 +02:00
Alexander Larsson 90718549ee run: Read per-app override metadata file 2015-09-09 16:31:49 +02:00
Alexander Larsson 6d98e56c55 run: Never propagate DISPLAY if X socket not requested
This is just confusing.
2015-09-09 16:31:07 +02:00
Alexander Larsson 5610b97455 XdgAppContext: Properly handle masking things from parent context
This allows you to use things like --nosocket in build-finish to
override runtime defaults. But it is also a building block for
later changes.
2015-09-09 14:11:05 +02:00
Alexander Larsson 60fc11035e db: Fix leak 2015-09-07 11:13:24 +02:00
Alexander Larsson c0e480df94 Add xdg_app_mkstempat
This is like g_mkstemp except it uses openat
2015-09-03 22:17:00 +02:00
Alexander Larsson 58fb2c4e50 Markup AUTOLOCK with unused to avoid warnings 2015-09-03 22:16:43 +02:00
Colin Walters 8bbe3b3e41 helper: Add perf and ptrace to seccomp blacklist
Note that I copied this xdg-app blacklist into linux-user-chroot:
https://git.gnome.org/browse/linux-user-chroot/commit/?id=8cee4ab7345f126d1dec55b7ca1f28e8090a58d3

We should figure out a better way down the line to share code - maybe
we can share a setup-seccomp.c?

Possibly in the long run we'll end up with diverging blacklists, as
linux-user-chroot can be a lot more aggressive, as its primary
audience is build side, not generic applications.  We'll see.

But in this patch I added a big comment on how we should share code,
and in particular credit sandstorm.io for some of these filters.
(Although they may have gotten some of them from Android or Chromium?)

Going back to the high level topic - let's add perf and ptrace to the
blacklist.  We expect profiling to be done from a non-sandboxed
terminal, or a less-restricted IDE type process which can look at the
namespace of other apps and the desktop/kernel.
2015-09-02 09:08:06 +02:00
Alexander Larsson 6775dc1002 Use g_auto(GStrv) instead of glnx_strfreev 2015-08-31 09:51:48 +02:00
Colin Walters bfeaccb822 Update libglnx, use its copy of backports
This fixes the build on GLib 2.42 at least - the conditionals for
g_strv_contains() weren't right.  I'm trying to have libglnx also be a
centralized "glib backports" area, so having g_strv_contains() there
is better.
2015-08-31 09:40:45 +02:00
Alexander Larsson f6657901c4 utils: Add AUTOLOCK macro 2015-08-27 19:42:15 +02:00
Alexander Larsson d442e9bb4c Fix const marking of string arrays. 2015-08-27 16:16:58 +02:00
Alexander Larsson 909aa7a762 Fix error check of policy parsing 2015-08-27 16:16:38 +02:00
Alexander Larsson cbdd412d71 Fix type of return 2015-08-27 16:16:02 +02:00
Alexander Larsson 52525f46fd Remove ununsed variables reported by clang 2015-08-27 16:13:15 +02:00
Alexander Larsson 12fbd9ff95 Make document portal use the new permission store 2015-08-26 17:11:35 +02:00
Alexander Larsson c4e500db37 Add XdgAppError 2015-08-25 13:16:34 +02:00
Alexander Larsson d9f9080967 Initial version of XdgAppDb 2015-08-25 13:16:31 +02:00
Alexander Larsson 2d0866cac8 gvdb: Add gvdb_table_get_content
This is useful if you want to apply outstanding changes to
a table withough immediately persisting it to disk.
2015-08-25 09:27:35 +02:00
Alexander Larsson a9ffa4960d Move gvdb to lib/ 2015-08-25 09:27:35 +02:00
Alexander Larsson ffa1acea75 Rename dbus file to org.freedesktop.XdgApp 2015-08-25 09:27:35 +02:00
Alexander Larsson f76f6a39ef document-portal: *always* use the by-app location
This is better as you can't accidentally access another apps docs (although
you can still see the backing real files)
2015-07-11 10:48:53 +02:00
Alexander Larsson 08d05a30a3 Automatically start and mount document portal in sandbox 2015-07-10 17:49:59 +02:00
Alexander Larsson 929071ad10 Import xdg-document-portal from github repo
This pulls in the daemon code from:
     https://github.com/alexlarsson/xdg-document-portal/

We need this in xdg-app because we need to set up the mounts correctly.
2015-07-10 16:56:39 +02:00
Alexander Larsson 0040312b07 If home is accessible, make user-dirs.dir visible in custom config dir
This makes xdg user dirs work in the sandbox too.
2015-07-10 12:36:54 +02:00
Alexander Larsson 302f88e69d Restructure directories and build
This moves a all source code into separate subdirs per binary. The
helper and the generic stuff goes into lib/ which is then used by all
the others. For now this is a completely internal library, but at
some point we will probably clean it up and expose some subset.

Also, we move the dbus proxy to libexecdir.
2015-07-10 12:15:45 +02:00