Import Debian changes 0.9.0-ok1
bubblewrap (0.9.0-ok1) nile; urgency=medium * Build for openKylin.
This commit is contained in:
parent
015eefdf88
commit
20b859454d
|
@ -0,0 +1,10 @@
|
||||||
|
# Enable unprivileged creation of new user namespaces in older Debian
|
||||||
|
# kernels.
|
||||||
|
#
|
||||||
|
# If this is not desired, copy this file to
|
||||||
|
# /etc/sysctl.d/50-bubblewrap.conf and change the value of this parameter
|
||||||
|
# to 0, then use dpkg-statoverride to make /usr/bin/bwrap setuid root.
|
||||||
|
#
|
||||||
|
# For more details see https://deb.li/bubblewrap or
|
||||||
|
# /usr/share/doc/bubblewrap/README.Debian
|
||||||
|
kernel.unprivileged_userns_clone=1
|
|
@ -0,0 +1,172 @@
|
||||||
|
bubblewrap kernel requirements
|
||||||
|
==============================
|
||||||
|
|
||||||
|
bubblewrap can be used by various parts of the system to run
|
||||||
|
partially-trusted programs in a sandboxed environment where their impact
|
||||||
|
on system security is reduced. For example:
|
||||||
|
|
||||||
|
- Flatpak uses bubblewrap to run partially-trusted, user-installable
|
||||||
|
apps in a sandboxed environment.
|
||||||
|
|
||||||
|
- libgnome-desktop uses bubblewrap to run thumbnailers in a sandboxed
|
||||||
|
environment, so that if there are security flaws in an image decoder
|
||||||
|
used by a thumbnailer, the process of generating thumbnails for a
|
||||||
|
maliciously crafted image cannot be used to attack the rest of the
|
||||||
|
system.
|
||||||
|
|
||||||
|
bubblewrap can also be used to run trusted programs in a different
|
||||||
|
environment, for example with different shared libraries available:
|
||||||
|
|
||||||
|
- Flatpak uses bubblewrap to run apps with a predictable library stack
|
||||||
|
that does not match the rest of the system, even if those apps are
|
||||||
|
trusted and so do not need to be sandboxed for security.
|
||||||
|
|
||||||
|
- Steam uses bubblewrap to run some games with a predictable library
|
||||||
|
stack that does not match the rest of the system.
|
||||||
|
|
||||||
|
The necessary capabilities to do this can be obtained in one of two
|
||||||
|
ways:
|
||||||
|
|
||||||
|
- On kernels where unprivileged users can create new user namespaces,
|
||||||
|
bubblewrap's bwrap executable can be an ordinary unprivileged program.
|
||||||
|
|
||||||
|
- On kernels where this is not possible, bubblewrap will not work unless
|
||||||
|
the /usr/bin/bwrap executable is setuid root. Some bubblewrap and Flatpak
|
||||||
|
features will not work in this configuration for security reasons.
|
||||||
|
|
||||||
|
Newer Debian kernels (Linux 5.10 and newer; Debian 11 and newer)
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
Debian kernels since 5.10 allow unprivileged users to create new user
|
||||||
|
namespaces. The bwrap executable can be made non-setuid on these kernels.
|
||||||
|
|
||||||
|
By default, the bubblewrap package in Debian no longer installs a setuid
|
||||||
|
root /usr/bin/bwrap executable.
|
||||||
|
|
||||||
|
Ubuntu kernels (Ubuntu 18.04 and newer)
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Ubuntu kernels also allow unprivileged users to create new user
|
||||||
|
namespaces. The bwrap executable can be made non-setuid on these kernels,
|
||||||
|
and the Ubuntu bubblewrap package does not install a setuid executable.
|
||||||
|
|
||||||
|
Older Debian kernels (Linux 5.9 and older; Debian 10 and older)
|
||||||
|
---------------------------------------------------------------
|
||||||
|
|
||||||
|
Debian kernels older than 5.10 have support for user namespaces, but
|
||||||
|
that feature is disabled by default to reduce the kernel's attack
|
||||||
|
surface.
|
||||||
|
|
||||||
|
The bubblewrap package contains configuration in
|
||||||
|
/usr/lib/sysctl.d/50-bubblewrap.conf to enable user namespaces
|
||||||
|
(see "Enabling kernel.unprivileged_userns_clone", below).
|
||||||
|
|
||||||
|
If this is not desired, system administrators can copy that file
|
||||||
|
to /etc/sysctl.d/50-bubblewrap.conf and modify it to disable unprivileged
|
||||||
|
creation of user namespaces, then make bubblewrap setuid root so that it
|
||||||
|
still works as intended (see "Making bubblewrap setuid root", below).
|
||||||
|
|
||||||
|
Custom and third-party kernels
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
If you compile your own kernel, you will need at least
|
||||||
|
CONFIG_NAMESPACES=y and preferably CONFIG_USER_NS=y.
|
||||||
|
|
||||||
|
If you do not have CONFIG_UTS_NS=y, CONFIG_IPC_NS=y, CONFIG_USER_NS=y,
|
||||||
|
CONFIG_PID_NS=y and CONFIG_NET_NS=y, then the corresponding bubblewrap
|
||||||
|
features will not work.
|
||||||
|
|
||||||
|
Configuring kernel.unprivileged_userns_clone
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
This Debian-specific sysctl parameter controls whether unprivileged
|
||||||
|
users are allowed to create new user namespaces.
|
||||||
|
|
||||||
|
If it is set to 0, some attacks against the kernel are made more difficult,
|
||||||
|
which can increase security. However, some user-space software will not
|
||||||
|
be able to create a sandboxed environment or will have to rely on a
|
||||||
|
setuid version of bubblewrap to create a sandboxed environment, which
|
||||||
|
reduces security. The value of this sysctl parameter is a trade-off
|
||||||
|
between different security risks.
|
||||||
|
|
||||||
|
If this parameter is set to 0, bubblewrap and Flatpak will not work unless
|
||||||
|
bwrap is made setuid root (see "Making bubblewrap setuid root" below).
|
||||||
|
|
||||||
|
The default is 1 for Debian kernels that are version 5.10 or newer,
|
||||||
|
1 for Ubuntu kernels, or 0 for older Debian kernels. The bubblewrap
|
||||||
|
package contains configuration in /usr/lib/sysctl.d/50-bubblewrap.conf
|
||||||
|
to set this parameter to 1 during system startup.
|
||||||
|
|
||||||
|
If this is not desired, system administrators can copy
|
||||||
|
/usr/lib/sysctl.d/50-bubblewrap.conf to /etc/sysctl.d/50-bubblewrap.conf
|
||||||
|
and modify it to disable unprivileged creation of user namespaces, then
|
||||||
|
make bubblewrap setuid root so that it still works as intended (see
|
||||||
|
"Making bubblewrap setuid root", below).
|
||||||
|
|
||||||
|
You can view the current setting with:
|
||||||
|
|
||||||
|
cat /proc/sys/kernel/unprivileged_userns_clone
|
||||||
|
|
||||||
|
and temporarily set it to 1 (until the next reboot) with:
|
||||||
|
|
||||||
|
sudo sysctl -w kernel.unprivileged_userns_clone=1
|
||||||
|
|
||||||
|
Configuring the maximum number of namespaces per user
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
The number of user namespaces per user is limited. The default limit
|
||||||
|
depends on the amount of RAM available.
|
||||||
|
|
||||||
|
Setting this limit to 0 is the recommended way to disable user namespace
|
||||||
|
creation if this is required as a security hardening measure. bubblewrap
|
||||||
|
will not work with this limit set to 0, unless it is setuid root (see
|
||||||
|
"Configuring whether bubblewrap is setuid root" below).
|
||||||
|
|
||||||
|
The limit is given by the user.max_user_namespaces sysctl parameter.
|
||||||
|
|
||||||
|
You can view the current setting with:
|
||||||
|
|
||||||
|
cat /proc/sys/user/max_user_namespaces
|
||||||
|
|
||||||
|
and temporarily set it to a value (until the next reboot) with a
|
||||||
|
command like:
|
||||||
|
|
||||||
|
sudo sysctl -w user.max_user_namespaces=1000
|
||||||
|
|
||||||
|
To set it to a value during system startup, create a file in /etc/sysctl.d
|
||||||
|
containing a line like this:
|
||||||
|
|
||||||
|
user.max_user_namespaces=1000
|
||||||
|
|
||||||
|
Configuring whether bubblewrap is setuid root
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
To use bubblewrap with kernel.unprivileged_userns_clone set to 0
|
||||||
|
or user.max_user_namespaces set to 0, it is necessary to make the bwrap
|
||||||
|
executable setuid root. This gives it the necessary capabilities to set
|
||||||
|
up containers even when run by an otherwise unprivileged user, and is the
|
||||||
|
configuration normally used in Debian 10.
|
||||||
|
|
||||||
|
This can be a security risk: if there are bugs in bubblewrap, it might be
|
||||||
|
possible for an unprivileged user to get root privileges by running a
|
||||||
|
setuid version of the bwrap executable. CVE-2020-5291 and CVE-2016-8659
|
||||||
|
are examples of bugs that had this effect in the past. However, it allows
|
||||||
|
the kernel to be configured to disallow creation of user namespaces by
|
||||||
|
unprivileged users, which prevents attacks like CVE-2016-3135 from being
|
||||||
|
carried out against the kernel. This is a trade-off between different
|
||||||
|
security risks.
|
||||||
|
|
||||||
|
To avoid other attacks, some Flatpak and bubblewrap features are not
|
||||||
|
available when bwrap is setuid root, and the absence of those features
|
||||||
|
is known to break some Flatpak apps. For example, the Flatpak app for
|
||||||
|
the Chromium web browser will not work with a setuid bwrap executable.
|
||||||
|
|
||||||
|
To check whether the bwrap executable will be made setuid root after
|
||||||
|
the next upgrade, use this command:
|
||||||
|
|
||||||
|
dpkg-statoverride --list /usr/bin/bwrap
|
||||||
|
|
||||||
|
To force the bwrap executable to be setuid root, use these commands:
|
||||||
|
|
||||||
|
sudo dpkg-statoverride --quiet --remove /usr/bin/bwrap
|
||||||
|
sudo dpkg-statoverride --update --add root root 4755 /usr/bin/bwrap
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
exec >&3 2>&3
|
||||||
|
|
||||||
|
echo "Permissions of /usr/bin/bwrap:"
|
||||||
|
ls -l /usr/bin/bwrap || :
|
||||||
|
|
||||||
|
for f in \
|
||||||
|
/etc/sysctl.d/*-bubblewrap.conf \
|
||||||
|
/usr/lib/sysctl.d/*-bubblewrap.conf \
|
||||||
|
/proc/sys/kernel/unprivileged_userns_clone \
|
||||||
|
/proc/sys/user/max_*_namespaces \
|
||||||
|
; do
|
||||||
|
echo "$f:"
|
||||||
|
cat "$f" || :
|
||||||
|
done
|
|
@ -0,0 +1 @@
|
||||||
|
demos/*
|
|
@ -0,0 +1 @@
|
||||||
|
debian/50-bubblewrap.conf usr/lib/sysctl.d
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
# Apply sysctl configuration after upgrade
|
||||||
|
if command -v sysctl > /dev/null; then
|
||||||
|
sysctl --quiet --pattern '^kernel\.unprivileged_userns_clone$' --system || :
|
||||||
|
fi
|
|
@ -0,0 +1,5 @@
|
||||||
|
bubblewrap (0.9.0-ok1) nile; urgency=medium
|
||||||
|
|
||||||
|
* Build for openKylin.
|
||||||
|
|
||||||
|
-- Luoyaoming <Luoyaoming@kylinos.cn> Wed, 24 Apr 2024 09:11:58 +0800
|
|
@ -0,0 +1 @@
|
||||||
|
config.log
|
|
@ -0,0 +1,50 @@
|
||||||
|
Source: bubblewrap
|
||||||
|
Section: admin
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: openKylin Developers <packaging@lists.openkylin.top>
|
||||||
|
XSBC-Original-Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
|
||||||
|
Uploaders:
|
||||||
|
Laszlo Boszormenyi (GCS) <gcs@debian.org>,
|
||||||
|
Simon McVittie <smcv@debian.org>,
|
||||||
|
Build-Depends:
|
||||||
|
bash-completion,
|
||||||
|
debhelper-compat (= 13),
|
||||||
|
docbook-xml,
|
||||||
|
docbook-xsl,
|
||||||
|
iproute2 <!nocheck>,
|
||||||
|
libcap-dev,
|
||||||
|
libcap2-bin <!nocheck>,
|
||||||
|
libipc-run-perl <!nocheck>,
|
||||||
|
libselinux1-dev,
|
||||||
|
meson,
|
||||||
|
perl:any <!nocheck>,
|
||||||
|
pkgconf,
|
||||||
|
python3:any <!nocheck>,
|
||||||
|
xsltproc,
|
||||||
|
Standards-Version: 4.6.2
|
||||||
|
Homepage: https://github.com/containers/bubblewrap
|
||||||
|
Vcs-Git: https://salsa.debian.org/debian/bubblewrap.git
|
||||||
|
Vcs-Browser: https://salsa.debian.org/debian/bubblewrap
|
||||||
|
Rules-Requires-Root: no
|
||||||
|
|
||||||
|
Package: bubblewrap
|
||||||
|
Architecture: linux-any
|
||||||
|
Multi-Arch: foreign
|
||||||
|
Depends:
|
||||||
|
${misc:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
|
Recommends:
|
||||||
|
procps,
|
||||||
|
Description: utility for unprivileged chroot and namespace manipulation
|
||||||
|
bubblewrap uses Linux namespaces to launch unprivileged containers.
|
||||||
|
These containers can be used to sandbox semi-trusted applications such
|
||||||
|
as Flatpak apps, image/video thumbnailers and web browser components,
|
||||||
|
or to run programs in a different library stack such as a Flatpak runtime
|
||||||
|
or a different Debian release.
|
||||||
|
.
|
||||||
|
By default, this package relies on a kernel with user namespaces enabled.
|
||||||
|
Official Debian and Ubuntu kernels are suitable.
|
||||||
|
.
|
||||||
|
On kernels without user namespaces, system administrators can make the
|
||||||
|
bwrap executable setuid root, allowing it to create unprivileged
|
||||||
|
containers even though ordinary user processes cannot.
|
|
@ -0,0 +1,89 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: bubblewrap
|
||||||
|
Source: https://github.com/containers/bubblewrap/
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright:
|
||||||
|
2016 Alexander Larsson
|
||||||
|
2021 Simon McVittie
|
||||||
|
2022 Collabora Ltd.
|
||||||
|
License: LGPL-2+
|
||||||
|
|
||||||
|
Files: bubblewrap.jpg
|
||||||
|
Copyright: none
|
||||||
|
License: pd-bubblewrap.jpg
|
||||||
|
Placed in the public domain by the photographer "dancing_stupidity".
|
||||||
|
|
||||||
|
Files: debian/*
|
||||||
|
Copyright:
|
||||||
|
2016 Laszlo Boszormenyi (GCS) <gcs@debian.org>
|
||||||
|
2016-2024 Simon McVittie
|
||||||
|
2016-2024 Collabora Ltd.
|
||||||
|
License: LGPL-2+
|
||||||
|
|
||||||
|
Files:
|
||||||
|
git.mk
|
||||||
|
Copyright:
|
||||||
|
2009, Red Hat, Inc.
|
||||||
|
2010-2013 Behdad Esfahbod
|
||||||
|
License: permissive-git.mk
|
||||||
|
Copying and distribution of this file, with or without modification,
|
||||||
|
is permitted in any medium without royalty provided the copyright
|
||||||
|
notice and this notice are preserved.
|
||||||
|
|
||||||
|
Files: m4/attributes.m4
|
||||||
|
Copyright:
|
||||||
|
2006-2008 Diego Pettenò <flameeyes@gmail.com>
|
||||||
|
2006-2008 xine project
|
||||||
|
2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||||
|
License: GPL-2+ with Autoconf exception
|
||||||
|
|
||||||
|
License: LGPL-2+
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
.
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
|
||||||
|
USA.
|
||||||
|
.
|
||||||
|
On Debian systems, the full text of the GNU Library General Public License
|
||||||
|
version 2 can be found in the file `/usr/share/common-licenses/LGPL-2'.
|
||||||
|
|
||||||
|
License: GPL-2+ with Autoconf exception
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
02110-1301, USA.
|
||||||
|
.
|
||||||
|
As a special exception, the copyright owners of the
|
||||||
|
macro gives unlimited permission to copy, distribute and modify the
|
||||||
|
configure scripts that are the output of Autoconf when processing the
|
||||||
|
Macro. You need not follow the terms of the GNU General Public
|
||||||
|
License when using or distributing such scripts, even though portions
|
||||||
|
of the text of the Macro appear in them. The GNU General Public
|
||||||
|
License (GPL) does govern all other use of the material that
|
||||||
|
constitutes the Autoconf Macro.
|
||||||
|
.
|
||||||
|
This special exception to the GPL applies to versions of the
|
||||||
|
Autoconf Macro released by this project. When you make and
|
||||||
|
distribute a modified version of the Autoconf Macro, you may extend
|
||||||
|
this special exception to the GPL to apply to your modified version as
|
||||||
|
well.
|
|
@ -0,0 +1 @@
|
||||||
|
README.md
|
|
@ -0,0 +1,6 @@
|
||||||
|
[DEFAULT]
|
||||||
|
pristine-tar = True
|
||||||
|
debian-branch = debian/latest
|
||||||
|
upstream-branch = upstream/latest
|
||||||
|
patch-numbers = False
|
||||||
|
upstream-vcs-tag = v%(version)s
|
22
debian/patches/debian/Change-EPERM-error-message-to-show-Debian-specific-inform.patch
vendored
Normal file
22
debian/patches/debian/Change-EPERM-error-message-to-show-Debian-specific-inform.patch
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
From: Simon McVittie <smcv@debian.org>
|
||||||
|
Date: Fri, 1 Jan 2021 15:03:27 +0000
|
||||||
|
Subject: Change EPERM error message to show Debian-specific information
|
||||||
|
|
||||||
|
Forwarded: not-needed
|
||||||
|
---
|
||||||
|
bubblewrap.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/bubblewrap.c b/bubblewrap.c
|
||||||
|
index 9b78a9a..1ea16c9 100644
|
||||||
|
--- a/bubblewrap.c
|
||||||
|
+++ b/bubblewrap.c
|
||||||
|
@@ -2905,7 +2905,7 @@ main (int argc,
|
||||||
|
if (errno == EINVAL)
|
||||||
|
die ("Creating new namespace failed, likely because the kernel does not support user namespaces. bwrap must be installed setuid on such systems.");
|
||||||
|
else if (errno == EPERM && !is_privileged)
|
||||||
|
- die ("No permissions to creating new namespace, likely because the kernel does not allow non-privileged user namespaces. On e.g. debian this can be enabled with 'sysctl kernel.unprivileged_userns_clone=1'.");
|
||||||
|
+ die ("No permissions to create new namespace, likely because the kernel does not allow non-privileged user namespaces. See <https://deb.li/bubblewrap> or <file:///usr/share/doc/bubblewrap/README.Debian.gz>.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errno == ENOSPC)
|
|
@ -0,0 +1 @@
|
||||||
|
debian/Change-EPERM-error-message-to-show-Debian-specific-inform.patch
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# -*- makefile -*-
|
||||||
|
|
||||||
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+pie,+bindnow
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
PKGDIR=$(CURDIR)/debian/bubblewrap
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --buildsystem=meson+ninja --without=autoreconf
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
dh_auto_configure \
|
||||||
|
-- \
|
||||||
|
-Dzsh_completion_dir=/usr/share/zsh/vendor-completions \
|
||||||
|
${NULL}
|
||||||
|
.PHONY: override_dh_auto_configure
|
||||||
|
|
||||||
|
override_dh_auto_test:
|
||||||
|
# Remove LD_PRELOAD so we don't run with faketime. It uses
|
||||||
|
# sem_open(), but bubblewrap runs in an environment where that
|
||||||
|
# can't work.
|
||||||
|
env -u LD_PRELOAD dh_auto_test
|
||||||
|
|
||||||
|
.PHONY: override_dh_auto_test
|
|
@ -0,0 +1,3 @@
|
||||||
|
include:
|
||||||
|
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
|
||||||
|
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (quilt)
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
# vim:set sw=4 sts=4 et ft=perl:
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More;
|
||||||
|
use IPC::Run qw(run);
|
||||||
|
|
||||||
|
sub run_ok {
|
||||||
|
my $argv = shift;
|
||||||
|
my $debug = join(' ', @$argv);
|
||||||
|
ok(run($argv, @_), qq{"$debug" should succeed});
|
||||||
|
}
|
||||||
|
|
||||||
|
my $out;
|
||||||
|
run_ok([qw(bwrap --ro-bind / / /usr/bin/id -u)], '<', \undef, '>', \$out);
|
||||||
|
is($out, `id -u`);
|
||||||
|
run_ok([qw(bwrap --ro-bind / / /usr/bin/id -g)], '<', \undef, '>', \$out);
|
||||||
|
is($out, `id -g`);
|
||||||
|
|
||||||
|
done_testing;
|
|
@ -0,0 +1,36 @@
|
||||||
|
Tests:
|
||||||
|
basic
|
||||||
|
dev
|
||||||
|
net
|
||||||
|
upstream
|
||||||
|
userns
|
||||||
|
Restrictions: allow-stderr, isolation-machine
|
||||||
|
Depends:
|
||||||
|
bubblewrap,
|
||||||
|
iproute2:native,
|
||||||
|
libcap2-bin:native,
|
||||||
|
libipc-run-perl:native,
|
||||||
|
perl:native,
|
||||||
|
python3:native,
|
||||||
|
|
||||||
|
Tests: upstream-usrmerge
|
||||||
|
Restrictions: allow-stderr, isolation-machine, breaks-testbed
|
||||||
|
Depends:
|
||||||
|
bubblewrap,
|
||||||
|
iproute2:native,
|
||||||
|
libcap2-bin:native,
|
||||||
|
libipc-run-perl:native,
|
||||||
|
perl:native,
|
||||||
|
python3:native,
|
||||||
|
usrmerge
|
||||||
|
|
||||||
|
Tests:
|
||||||
|
upstream-as-root
|
||||||
|
Restrictions: allow-stderr, isolation-machine, needs-root
|
||||||
|
Depends:
|
||||||
|
bubblewrap,
|
||||||
|
iproute2:native,
|
||||||
|
libcap2-bin:native,
|
||||||
|
libipc-run-perl:native,
|
||||||
|
perl:native,
|
||||||
|
python3:native,
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
# vim:set sw=4 sts=4 et ft=perl:
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More;
|
||||||
|
use IPC::Run qw(run);
|
||||||
|
|
||||||
|
sub run_ok {
|
||||||
|
my $argv = shift;
|
||||||
|
my $debug = join(' ', @$argv);
|
||||||
|
ok(run($argv, @_), qq{"$debug" should succeed});
|
||||||
|
}
|
||||||
|
|
||||||
|
my $out;
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --dev /dev //bin/sh -c), "echo /dev/*"],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
like($out, qr{(^| )/dev/full( |$)});
|
||||||
|
like($out, qr{(^| )/dev/null( |$)});
|
||||||
|
like($out, qr{(^| )/dev/pts( |$)});
|
||||||
|
like($out, qr{(^| )/dev/random( |$)});
|
||||||
|
like($out, qr{(^| )/dev/shm( |$)});
|
||||||
|
like($out, qr{(^| )/dev/stderr( |$)});
|
||||||
|
like($out, qr{(^| )/dev/stdin( |$)});
|
||||||
|
like($out, qr{(^| )/dev/stdout( |$)});
|
||||||
|
like($out, qr{(^| )/dev/tty( |$)});
|
||||||
|
like($out, qr{(^| )/dev/urandom( |$)});
|
||||||
|
like($out, qr{(^| )/dev/zero( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/hda( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/dsp( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/fuse( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/kmsg( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/loop0( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/mem( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/sda( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/snd( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/tty1( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/vda( |$)});
|
||||||
|
|
||||||
|
done_testing;
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
# vim:set sw=4 sts=4 et ft=perl:
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More;
|
||||||
|
use IPC::Run qw(run);
|
||||||
|
|
||||||
|
sub run_ok {
|
||||||
|
my $argv = shift;
|
||||||
|
my $debug = join(' ', @$argv);
|
||||||
|
ok(run($argv, @_), qq{"$debug" should succeed});
|
||||||
|
}
|
||||||
|
|
||||||
|
my $out;
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --unshare-net /bin/sh -c), "ip link ls"],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
|
||||||
|
like($out, qr{^[0-9]+: lo:});
|
||||||
|
unlike($out, qr{^[0-9]+: en[^:]*:});
|
||||||
|
unlike($out, qr{^[0-9]+: eth[^:]*:});
|
||||||
|
unlike($out, qr{^[0-9]+: wlan[^:]*:});
|
||||||
|
|
||||||
|
done_testing;
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
exec tests/test-run.sh
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
exec tests/test-run.sh
|
|
@ -0,0 +1 @@
|
||||||
|
upstream
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
# vim:set sw=4 sts=4 et ft=perl:
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More;
|
||||||
|
use IPC::Run qw(run);
|
||||||
|
|
||||||
|
sub run_ok {
|
||||||
|
my $argv = shift;
|
||||||
|
my $debug = join(' ', @$argv);
|
||||||
|
ok(run($argv, @_), qq{"$debug" should succeed});
|
||||||
|
}
|
||||||
|
|
||||||
|
my $out;
|
||||||
|
|
||||||
|
diag("Unshare user ID");
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -u)],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
is($out, "2\n");
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -g)],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
is($out, "3\n");
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /bin/sh -c),
|
||||||
|
'ls -l /etc/passwd'],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
like($out, qr{ nobody nogroup });
|
||||||
|
|
||||||
|
diag("Combine new /dev with new user namespace (#71)");
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /bin/sh -c),
|
||||||
|
'echo /dev/*'],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
like($out, qr{(^| )/dev/full( |$)});
|
||||||
|
unlike($out, qr{(^| )/dev/tty1( |$)});
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -u)],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
is($out, "2\n");
|
||||||
|
run_ok([qw(bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -g)],
|
||||||
|
'<', \undef, '>', \$out);
|
||||||
|
is($out, "3\n");
|
||||||
|
|
||||||
|
done_testing;
|
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
Repository: https://github.com/containers/bubblewrap.git
|
||||||
|
Repository-Browse: https://github.com/containers/bubblewrap
|
||||||
|
Bug-Database: https://github.com/containers/bubblewrap/issues
|
||||||
|
Bug-Submit: https://github.com/containers/bubblewrap/issues/new
|
||||||
|
...
|
||||||
|
# vim:set ft=yaml:
|
|
@ -0,0 +1,9 @@
|
||||||
|
version=4
|
||||||
|
# Upstream releases official Autotools 'make dist' tarballs, so we use
|
||||||
|
# those in preference to git tags
|
||||||
|
opts="\
|
||||||
|
compression=xz, \
|
||||||
|
dversionmangle=s/\+(?:git)?[0-9]*(?:\+g[0-9a-f]*)//, \
|
||||||
|
downloadurlmangle=s#/tag/#/download/#;s#(v?@ANY_VERSION@)$#$1/@PACKAGE@-$2.tar.xz#, \
|
||||||
|
filenamemangle=s#v?@ANY_VERSION@#@PACKAGE@-$1.tar.xz#" \
|
||||||
|
https://github.com/containers/@PACKAGE@/tags .*/releases/tag/v?@ANY_VERSION@
|
Loading…
Reference in New Issue