Commit 4778b1e6 authored by Stuart Cardall's avatar Stuart Cardall Committed by Jakub Jirutka

community/lxcfs: replace chownmap with uidmapshift

uidmapshift is a lua script that is much faster remapping larger containers.
parent 8b7e48dc
......@@ -2,18 +2,17 @@
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=lxcfs
pkgver=2.0.3
pkgrel=2
pkgrel=3
pkgdesc="FUSE filesystem for LXC"
url="https://linuxcontainers.org/lxcfs"
arch="all"
license="Apache 2.0"
depends="cgmanager shadow"
depends="cgmanager shadow-uidmap uidmapshift"
makedepends="fuse-dev linux-pam-dev linux-headers help2man"
subpackages="$pkgname-pam $pkgname-doc"
source="https://linuxcontainers.org/downloads/lxcfs/lxcfs-$pkgver.tar.gz
lxcfs.confd
lxcfs.initd
chownmap
README.alpine
lxcfs-subdir.patch
"
......@@ -36,8 +35,6 @@ package() {
"$pkgdir"/etc/init.d/$pkgname || return 1
install -m644 -D "$srcdir"/$pkgname.confd \
"$pkgdir"/etc/conf.d/$pkgname || return 1
install -m700 -D "$srcdir"/chownmap \
"$pkgdir"/etc/lxc/chownmap || return 1
install -m644 -D "$srcdir"/README.alpine \
"$pkgdir"/usr/share/doc/lxcfs/README.alpine || return 1
}
......@@ -50,19 +47,16 @@ pam() {
md5sums="8d79c575d0dc5d127776370eceb0f58b lxcfs-2.0.3.tar.gz
6d7943272d6b71ab7b93e93c55e42ee9 lxcfs.confd
2c4a59861c846dd9ddef0cab6664eed8 lxcfs.initd
e1d7c118ae134fcdd171f8aac146f9a0 chownmap
3533f3d49a5b0b83e8f8b8f20ea507fa lxcfs.initd
722e7a773283170910f5c9b40fb83610 README.alpine
14531d992c3c3e731ee596ff86e91829 lxcfs-subdir.patch"
sha256sums="dd94e19bff202cb9fe2aa7d244b2cccf53cf5d7f6dd76c815e1161e3ba4ce0df lxcfs-2.0.3.tar.gz
d8915d4635b675897895c379c892250f6c2bb55515a3b59cad09b92c35264359 lxcfs.confd
30e9005010508eaa382fbb44f784d26a641bf7c12e94d9ba2603ab3ad782e86b lxcfs.initd
2e6b84d98fc3cd03fa3f384876191dba05e6d781629a748add75ab380d921823 chownmap
b7f211fd76e52da9a03eeb501d457ddc6a65f9373cbd1cf290ef1db81ced8643 lxcfs.initd
a458f5561d8f1404ac7547bd73f7bf7d56898322d04268f31a7ee3ffdd5e36aa README.alpine
ef3d2848e534b3db9267efbb5bc515e0ecd6a768cdf8de928bccac21c26add9e lxcfs-subdir.patch"
sha512sums="1bca2dc88a4551c90e9760ad8d3c7548126d7803040ddab3ac24fda2d602ec0d34ebf78bbd2b4cd5941edba3ccfe135e86d257f0dc2b89617c7ca876b3dda4bb lxcfs-2.0.3.tar.gz
71df316b1aaf1a0fadc230473a66c0be4d201d706481f1042c353b79fc629e9e681ec4fe0dfb113370e00d3f40175b0d7759fdcdcce57cf1d2db585068aa6e8d lxcfs.confd
e08ee2e33cc8d82dbfbdc86b7aa87ef6b0033473951e9759bd8fd2b12b1d7beda1c7cb7befb7ce4fd1d7aea274778313957350af617d56b8702dbfcdc59b49b4 lxcfs.initd
5d18df216a004d5039d86634e62dc078f134991696da9c6f1c292f0f8aa3de1f202aa531000c9f75e2bc5d5121f856660e4f1d71c8e92a0e87517a23836a743d chownmap
b4e3bb76f4720d74c768c44c377665ad40e92da7332efebbf9100b6164e4e81214921c751d8ecd14dcef85c22cfa79bacf7e444d8159e93c719ff81ce2e9ba1c lxcfs.initd
16c65a10b2b95a85ea21d2cb44a45c9c7faf1e22c8c438c7325be96025588834a528544598a91facc13fa93cc46f6c4534fa2ca6bb58b152a26f1ced94b18f16 README.alpine
f7589ef65b3e01de0bb9e55c8ae06ae8124196b29b444006f3beaba308a8bebccad38e11c9c74f705dcad826aa6de0a10830053e0b025c640b7337804c48c056 lxcfs-subdir.patch"
#!/bin/sh
# author: Mirek Kratochvil
# https://github.com/exaexa/chownmap
help_exit () {
echo "usage: $0 <from> <to> <length> [ files ] ..."
exit $1
}
FROM="$1"
[ -n "$FROM" ] || help_exit 0
[ "$FROM" -ge 0 ] || help_exit 1
TO="$2"
[ -n "$TO" ] || help_exit 0
[ "$TO" -ge 0 ] || help_exit 1
LEN="$3"
[ -n "$LEN" ] || help_exit 0
[ "$LEN" -gt 0 ] || help_exit 1
[ -n "$4" ] || help_exit 0
shift 3
LAST=$(( FROM + LEN ))
CHANGE=$(( TO - FROM ))
CHOWN_EXTRA_OPTS=${CHOWN_EXTRA_OPTS:-}
do_dir () {
find "$1" |while read fn ; do
stat "$fn" -c"%u %g" | {
read uid gid
chuid=$uid
chgid=$gid
[[ $chuid -ge $FROM && $chuid -lt $LAST ]] && chuid=$(( chuid + CHANGE ))
[[ $chgid -ge $FROM && $chgid -lt $LAST ]] && chgid=$(( chgid + CHANGE ))
[[ $uid -ne $chuid || $gid -ne $chgid ]] && chown $CHOWN_EXTRA_OPTS -h $chuid:$chgid "$fn"
}
done
}
while [ -n "$1" ] ; do
do_dir "$1"
shift
done
......@@ -7,7 +7,7 @@ DAEMON=/usr/bin/lxcfs
PIDFILE=/run/lxcfs.pid
VARDIR=/var/lib/lxcfs
RUNDIR=/run/lxcfs
CHOWNMAP=/etc/lxc/chownmap
MAPPER=/usr/bin/uidmapshift
description="FUSE filesystem for LXC unprivileged containers"
description_setup="Setup unprivileged container permissions"
......@@ -53,8 +53,7 @@ find_perms() {
create_id() {
einfo "Creating $1 for root: /etc/$1"
touch /etc/$1
usermod --add-${1}s 100000-165536 root
echo "root:100000:65537" >> /etc/$1
PERMS="$PERMS 100000"
}
......@@ -110,7 +109,7 @@ setup() {
for ctr in $ctr_list; do
einfo "Mapping user permissions in container: $ctr"
${CHOWNMAP} 0 $subuid $range $path/$ctr/rootfs
${MAPPER} -b $path/$ctr/rootfs 0 $subuid $range
dir_perms "$path/$ctr"
done
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment