As discussed earlier this week, lxc-setcap and lxc-setuid have been in pretty bad shape lately. Most if not all distros recommend against using them or don't ship them at all.
With the ongoing work to get user namespaces working in upstream LXC, we think it's best to drop those two now as we prepare to land proper setuid helpers to deal with user namespaces. Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- .gitignore | 2 - README | 2 +- configure.ac | 31 ------------ src/lxc/Makefile.am | 2 - src/lxc/lxc-setcap.in | 135 -------------------------------------------------- src/lxc/lxc-setuid.in | 132 ------------------------------------------------ 6 files changed, 1 insertion(+), 303 deletions(-) delete mode 100644 src/lxc/lxc-setcap.in delete mode 100644 src/lxc/lxc-setuid.in diff --git a/.gitignore b/.gitignore index 7401b55..e5bc505 100644 --- a/.gitignore +++ b/.gitignore @@ -55,8 +55,6 @@ src/lxc/lxc-monitor src/lxc/lxc-netstat src/lxc/lxc-ps src/lxc/lxc-restart -src/lxc/lxc-setcap -src/lxc/lxc-setuid src/lxc/lxc-shutdown src/lxc/lxc-start src/lxc/lxc-start-ephemeral diff --git a/README b/README index cedb50d..1495565 100644 --- a/README +++ b/README @@ -36,7 +36,7 @@ Downloading the current source code: For detailed build instruction refer to INSTALL and man lxc man page but a short command line should work: - ./autogen.sh && ./configure && make && sudo make install && sudo lxc-setcap + ./autogen.sh && ./configure && make && sudo make install preceded by ./autogen.sh if configure do not exist yet. Getting help: diff --git a/configure.ac b/configure.ac index e7e3a7e..8963e3d 100644 --- a/configure.ac +++ b/configure.ac @@ -356,8 +356,6 @@ AC_CONFIG_FILES([ src/lxc/lxc-ps src/lxc/lxc-netstat src/lxc/lxc-checkconfig - src/lxc/lxc-setcap - src/lxc/lxc-setuid src/lxc/lxc-version src/lxc/lxc-create src/lxc/lxc-clone @@ -377,32 +375,3 @@ AC_CONFIG_FILES([ ]) AC_CONFIG_COMMANDS([default],[[]],[[]]) AC_OUTPUT - - -# Detect missing setcap binary -AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin) -if test "x$SETCAP" = "xno"; then - AC_MSG_NOTICE([ - -Warning: --------- - -The setcap binary was not found. This means the tools to set the -privilege for the lxc commands are not available, that's ok, but you -will need to run these commands as root or install libcap-2. - -]) - -else - - AC_MSG_NOTICE([ - -Advice: -------- - -If you wish to have a non root user to use the lxc tools, -you can add the needed capabilities to the tools by invoking -the 'lxc-setcap' script. To remove the capabilities, use -'lxc-setcap -d'. -]) -fi diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am index bada939..8974ca9 100644 --- a/src/lxc/Makefile.am +++ b/src/lxc/Makefile.am @@ -122,8 +122,6 @@ bin_SCRIPTS = \ lxc-ps \ lxc-netstat \ lxc-checkconfig \ - lxc-setcap \ - lxc-setuid \ lxc-version \ lxc-create \ lxc-clone \ diff --git a/src/lxc/lxc-setcap.in b/src/lxc/lxc-setcap.in deleted file mode 100644 index f338f12..0000000 --- a/src/lxc/lxc-setcap.in +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/sh - -# -# lxc: linux Container library - -# Authors: -# Daniel Lezcano <daniel.lezc...@free.fr> - -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 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 -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -# -# This script allows to set or remove the capabilities on the lxc tools. -# When the capabilities are set, a non root user can manage the containers. -# - -. @DATADIR@/lxc/lxc.functions - -LXC_ATTACH_CAPS="cap_sys_admin,cap_dac_override" -LXC_CREATE_CAPS="cap_sys_admin" -LXC_NETSTAT_CAPS="cap_sys_admin" -LXC_INIT_CAPS="cap_sys_admin,cap_dac_override" -LXC_COMMON_CAPS="cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override" -LXC_UNSHARE_CAPS=$LXC_COMMON_CAPS -LXC_START_CAPS="$LXC_COMMON_CAPS,cap_fowner,cap_sys_chroot,cap_setpcap" -LXC_EXECUTE_CAPS=$LXC_START_CAPS -LXC_RESTART_CAPS="$LXC_START_CAPS,cap_mknod" -LXC_CHECKPOINT_CAPS="$LXC_COMMON_CAPS,cap_sys_ptrace,cap_mknod" -LXC_DROP_CAPS="" - -usage() { - echo "usage: $(basename $0) [-d]" >&2 -} - -help() { - usage - echo >&2 - echo "Set or drop file capabilities on the lxc tools." >&2 - echo >&2 - echo "Options:" >&2 - echo " -d drop file capabilities" >&2 -} - -lxc_setcaps() -{ - setcap $LXC_ATTACH_CAPS=ep @BINDIR@/lxc-attach - setcap $LXC_CREATE_CAPS=ep @BINDIR@/lxc-create - setcap $LXC_EXECUTE_CAPS=ep @BINDIR@/lxc-execute - setcap $LXC_START_CAPS=ep @BINDIR@/lxc-start - setcap $LXC_RESTART_CAPS=ep @BINDIR@/lxc-restart - setcap $LXC_UNSHARE_CAPS=ep @BINDIR@/lxc-unshare - setcap $LXC_NETSTAT_CAPS=ep @BINDIR@/lxc-netstat - setcap $LXC_CHECKPOINT_CAPS=ep @BINDIR@/lxc-checkpoint - setcap $LXC_INIT_CAPS=ep @LXCINITDIR@/lxc/lxc-init - - test -e $lxc_path || mkdir -p $lxc_path - chmod 0777 $lxc_path -} - -lxc_dropcaps() -{ - setcap -r $bindir/lxc-attach - setcap -r $bindir/lxc-create - setcap -r $bindir/lxc-execute - setcap -r $bindir/lxc-start - setcap -r $bindir/lxc-restart - setcap -r $bindir/lxc-unshare - setcap -r $bindir/lxc-netstat - setcap -r $bindir/lxc-checkpoint - setcap -r $lxcinitdir/lxc/lxc-init - - chmod 0755 $lxc_path -} - -usage_err() { - [ -n "$1" ] && echo "$1" >&2 - usage - exit 1 -} - -optarg_check() { - if [ -z "$2" ]; then - usage_err "option '$1' requires an argument" - fi -} - -while [ $# -gt 0 ]; do - opt="$1" - shift - case "$opt" in - -d) - LXC_DROP_CAPS="yes" - ;; - -h|--help) - help - exit 0 - ;; - --) - break - ;; - -?) - usage_err "unknown option '$opt'" - ;; - -*) - # split opts -abc into -a -b -c - set -- $(echo "${opt#-}" | sed 's/\(.\)/ -\1/g') "$@" - ;; - *) - usage - exit 1 - ;; - esac -done; - -if [ "$(id -u)" != "0" ]; then - echo "$(basename $0): must be run as root" >&2 - exit 1 -fi - -if [ -z "$LXC_DROP_CAPS" ]; then - lxc_setcaps -else - lxc_dropcaps -fi diff --git a/src/lxc/lxc-setuid.in b/src/lxc/lxc-setuid.in deleted file mode 100644 index 2e44b8d..0000000 --- a/src/lxc/lxc-setuid.in +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/sh - -# -# lxc: linux Container library - -# Authors: -# Daniel Lezcano <daniel.lezc...@free.fr> - -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 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 -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -# -# This script allows to set or remove the setuid execution bit on the lxc tools. -# When the capabilities are set, a non root user can manage the containers. -# - -. @DATADIR@/lxc/lxc.functions - -usage() { - echo "usage: $(basename $0) [-d]" >&2 -} - -help() { - usage - echo >&2 - echo "Set or drop the setuid attribute on the lxc tools." >&2 - echo >&2 - echo "Options:" >&2 - echo " -d drop the setuid attribute" >&2 -} - -setuid() -{ - if [ "$1" = "-r" ]; then - chmod -s $2 - else - chmod +s $1 - fi -} - -lxc_setuid() -{ - setuid $bindir/lxc-attach - setuid $bindir/lxc-create - setuid $bindir/lxc-execute - setuid $bindir/lxc-start - setuid $bindir/lxc-restart - setuid $bindir/lxc-unshare - setuid $bindir/lxc-netstat - setuid $bindir/lxc-checkpoint - setuid $lxcinitdir/lxc-init - - test -e $lxc_path || mkdir -p $lxc_path - chmod 0777 $lxc_path -} - -lxc_dropuid() -{ - setuid -r $bindir/lxc-attach - setuid -r $bindir/lxc-create - setuid -r $bindir/lxc-execute - setuid -r $bindir/lxc-start - setuid -r $bindir/lxc-restart - setuid -r $bindir/lxc-unshare - setuid -r $bindir/lxc-netstat - setuid -r $bindir/lxc-checkpoint - setuid -r $lxcinitdir/lxc-init - - chmod 0755 $lxc_path -} - -usage_err() { - [ -n "$1" ] && echo "$1" >&2 - usage - exit 1 -} - -optarg_check() { - if [ -z "$2" ]; then - usage_err "option '$1' requires an argument" - fi -} - -while [ $# -gt 0 ]; do - opt="$1" - shift - case "$opt" in - -d) - LXC_DROP_CAPS="yes" - ;; - -h|--help) - help - exit 0 - ;; - --) - break - ;; - -?) - usage_err "unknown option '$opt'" - ;; - -*) - # split opts -abc into -a -b -c - set -- $(echo "${opt#-}" | sed 's/\(.\)/ -\1/g') "$@" - ;; - *) - usage - exit 1 - ;; - esac -done; - -if [ "$(id -u)" != "0" ]; then - echo "$(basename $0): must be run as root" >&2 - exit 1 -fi - -if [ -z "$LXC_DROP_CAPS" ]; then - lxc_setuid -else - lxc_dropuid -fi -- 1.8.1.2 ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel