
Итак, я использую chroot для chroot-перехода в Debian Bootstrap. Все работало как надо под учетной записью root, пока я не добавил нового пользователя, чтобы выяснить, что я не могу выполнить обновление или получить доступ к xdisplay или локальному IP-адресу, что странно. Я не знал, что делать, поэтому прошу помощи. Вот скрипт chroot, который я использую.
~ $ cat chroot.sh
sudo mount -t proc /proc chroot-ubuntu/proc
sudo mount --rbind /sys chroot-ubuntu/sys
sudo mount --rbind /dev chroot-ubuntu/dev
sudo mount /system/ chroot-ubuntu/system/
unset LD_PRELOAD
env -i HOME=/root \
PATH="/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/local/games:/opt/wine-5.3/bin/:/opt/wine-staging/bin/" \
TERM="xterm" \
BASH="/usr/bin/bash" \
SHELL="/usr/bin/bash" \
PREFIX="/usr" \
MDIR="/tmp" \
LD_LIBRARY_PATH="/lib:/usr/lib:/usr/lib/i386-linux-gnu/:/var/lib:/var/lib/dpkg/:/lib/i386-linux-gnu:/usr/local/lib:/opt/wine-stable/lib:/opt/wine-stable/lib/wine:/opt/wine-5.3/lib:/lib:/lib/wine:/lib/wine/fakedlls:/opt/wine-staging/lib" \
chroot chroot-ubuntu/ /bin/bash
Я запускаю chroot.sh с помощью sudo, поэтому я всегда нахожусь в учетной записи root. Давайте добавим нового пользователя. Я получаю этот странный вывод.
root@localhost:~# adduser g
Adding user `g' ...
Adding new group `g' (1000) ...
Adding new user `g' (1000) with group `g' ...
Creating home directory `/home/g' ...
Copying files from `/etc/skel' ...
passwd: user 'g' does not exist
Permission denied
Try again? [y/N]
и если я попытаюсь добавить пароль для нового пользователя, я получу
root@localhost:~# passwd g
passwd: user 'g' does not exist
поэтому пришлось добавить пользователя вручную, что я и сделал (не помню как)
вот вывод ifconfig для root и пользователя
root@localhost:~# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
обратите внимание, что inet 127.0.0.1, которого нет, когда делаешь ifcnfig на пользователе
spiral@localhost:~$ /sbin/ifconfig
warning: no inet socket available: No such file or directory`
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet6 ::1 prefixlen 128 scopeid 0x10<host>
вместо этого есть warning: no inet socket available: No such file or directory
ошибка
решение1
вот вывод
spiral@localhost:~$ strace ifconfig 2>&1 |grep ENOENT
proot warning: ptrace request 'PTRACE_???' not supported yet
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/ax25", R_OK) = -1 ENOENT (No such file or directory) faccessat(AT_FDCWD, "/proc/net/nr", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/rose", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/ipx", R_OK) = -1 ENOENT (No such file or directory) faccessat(AT_FDCWD, "/proc/net/appletalk", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/sys/net/econet", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/sys/net/ash", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/x25", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/ax25", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/nr", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/rose", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/ipx", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/appletalk", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/sys/net/econet", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/sys/net/ash", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/proc/net/x25", R_OK) = -1 ENOENT (No such file or directory)
spiral@localhost:~$