User Tools

Site Tools


команда_chroot

This is an old revision of the document!


Команда chroot

Изолированный shell

Debian/Ubuntu

Создание окружения "в ручную"

Примечание, в качестве исходных файлов здесь часто будут линки, превращающиеся в обычные файлы с такими же именами при копировании

# ldd /bin/bash
# ldd /bin/cat
# ldd /usr/bin/file

# man file

# mkdir /var/www/bin
# mkdir /var/www/usr/
# mkdir /var/www/usr/bin

# mkdir -p /var/www/usr/share/misc

# cp /bin/bash /var/www/bin/
# cp /bin/cat /var/www/bin/
# cp /usr/bin/file /var/www/usr/bin/

# cp /usr/share/misc/magic.mgc /var/www/usr/share/misc/

# # For x86_64 Debian/Ubuntu

# mkdir /var/www/lib/
# mkdir /var/www/lib64
# mkdir /var/www/lib/x86_64-linux-gnu/
# mkdir -p /var/www/usr/lib/x86_64-linux-gnu/

# cp /lib64/ld-linux-x86-64.so.* /var/www/lib64/
# cp /lib/x86_64-linux-gnu/libtinfo.so.* /var/www/lib/x86_64-linux-gnu/
# cp /lib/x86_64-linux-gnu/libdl.so.* /var/www/lib/x86_64-linux-gnu/
# cp /lib/x86_64-linux-gnu/libc.so.* /var/www/lib/x86_64-linux-gnu/
# cp /lib/x86_64-linux-gnu/libz.so.* /var/www/lib/x86_64-linux-gnu/
# cp /usr/lib/x86_64-linux-gnu/libmagic.so.* /var/www/usr/lib/x86_64-linux-gnu/


# # For x86_64 Gentoo

# mkdir /var/www/lib/
# mkdir /var/www/lib64
# mkdir -p /var/www/usr/lib64/

# cp /lib64/libreadline.so.6 /var/www/lib64/
# cp /lib64/libncurses.so.6 /var/www/lib64/
# cp /lib64/libc.so.6 /var/www/lib64/
# cp /lib64/ld-linux-x86-64.so.2 /var/www/lib64/
# cp /usr/lib64/libmagic.so.1 /var/www/usr/lib64/

Создание окружения через debootstrap

root@server:~# apt install debootstrap

ubuntu16# debootstrap --variant=minbase --arch amd64 xenial /var/www/

debian9# debootstrap --variant=minbase --arch i386 stretch /var/www/
debian9# debootstrap --variant=minbase --arch amd64 stretch /var/www/

CentOS

FreeBSD

Создание окружения "в ручную"

# ldd /bin/sh
# ldd /bin/cat
# ldd /usr/bin/file

# man file

# mkdir /var/www/bin
# mkdir /var/www/lib/

# mkdir /var/www/usr
# mkdir /var/www/usr/bin
# mkdir /var/www/usr/lib
# mkdir /var/www/libexec/
# mkdir -p /var/www/usr/share/misc

# cp /bin/sh /var/www/bin/
# cp /bin/cat /var/www/bin/
# cp /usr/bin/file /var/www/usr/bin/

# cp /usr/share/misc/magic.mgc /var/www/usr/share/misc/
 
# cp /lib/libedit.so.7 /var/www/lib/
# cp /lib/libncurses.so.8 /var/www/lib/
# cp /lib/libz.so.* /var/www/lib/
# cp /lib/libc.so.7 /var/www/lib/
# cp /usr/lib/libmagic.so.4 /var/www/usr/lib/
# cp /libexec/ld-elf.so.1 /var/www/libexec/

Создание окружения через make buildworld

Тестирование

debian# chroot /var/www/ /bin/bash
  или
freebsd# chroot /var/www/ /bin/sh

# echo *

# cat index.html

# file -bi index.html

# cat /etc/passwd

Тестирование изоляции процессов

debian# mkdir /var/www/proc

debian# mount --bind /proc /var/www/proc

debian# chroot /var/www/ /bin/bash

# echo /proc/*

# apt install procps

# ps ax

shell inetd web сервер в chroot

Debian/Ubuntu/FreeBSD

# mkdir /var/www/sbin

# cp /usr/local/sbin/webd /var/www/sbin/

# cat /var/www/sbin/webd
...
base=/
...

FreeBSD

# cat /etc/inetd.conf
...
#http stream tcp nowait root /usr/local/sbin/webd webd
http stream tcp nowait root /usr/sbin/chroot chroot /var/www/ /sbin/webd
# service inetd restart
команда_chroot.1592830069.txt.gz · Last modified: 2020/06/22 15:47 by val