そのため、Ubuntuで権限のないユーザーとしてUbuntuを起動しようとしています。私が使用する小さなスクリプトは次のとおりです。
#!/usr/bin/env bash
DEBARCHIVE_URL="http://localhost:3142/de.archive.ubuntu.com/ubuntu/"
LANG=en_US.UTF-8 \
fakeroot-ng -f -l"$(pwd)/fakeroot-ng.log" -p"$(pwd)/fakeroot-ng.state" \
fakechroot \
debootstrap \
--keep-debootstrap-dir \
--exclude=dhcp3-common,dhcp3-client,laptop-detect,tasksel,tasksel-data \
--variant=fakechroot \
--arch=amd64 \
$(lsb_release -sc) "${1:-$(pwd)/build_chroot}" ${DEBARCHIVE_URL}
主なポイントは、debootstrap
次の作業中に中断されることです。
I: Configuring makedev...
(ではhtop
ありませんpstree
)ブロックコマンドが次のように表示されます。
mknod mem- c 1 1
訪問者:
/bin/sh - /sbin/MAKEDEV std consoleonly fd
訪問者:
/bin/sh -e /var/lib/dpkg/info/makedev.postinst configure
それ自体はによって呼び出されますdpkg
。
要約(呼び出し順序):
/bin/sh -e /var/lib/dpkg/info/makedev.postinst configure
/bin/sh - /sbin/MAKEDEV std consoleonly fd
mknod mem- c 1 1
私が提供している--variant=fakechroot
ので、潜在的に権限のあるコマンドを使用するのに問題がないと予想されるので、これは衝撃的です。
私が何を間違っているのでしょうか?それとも、chroot
後で使用できるように環境をどのようにブートストラップできますかfakeroot fakechroot chroot ...
?
ログファイルの関連内容は次のとおりですfakeroot
。
4937: Called mknod(NONE)
mknod: 4937 tried to create character device, turn to regular file
mknod: 4937 mode 401
4502: Calling syscall 5 redirected from open
4937: Called mknod(RETURN)
mknod: 4937 call failed with error Permission denied
4502: Called syscall 5, redirected from open
open: 4502 map for dev 5 inode 1029 already exists - doing nothing
process 4937 orig_sc=133 actual sc=79 state=RETURN