User Tools

Site Tools


команда_chroot

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
команда_chroot [2020/07/16 15:00]
val
команда_chroot [2024/04/26 09:46]
val [Debian/Ubuntu]
Line 19: Line 19:
 # man file # man file
  
-# mkdir /​var/​www/​bin 
-# mkdir /​var/​www/​usr/​ 
-# mkdir /​var/​www/​usr/​bin 
  
-# mkdir -p /​var/​www/​usr/​share/misc+cat makechroot.sh 
 +</​code><​code>​ 
 +mkdir /​var/​www/​bin 
 +mkdir /​var/​www/​usr/​ 
 +mkdir /​var/​www/​usr/bin
  
-# cp /bin/bash /​var/​www/​bin/​ +mkdir -p /​var/​www/​usr/​share/misc
-# 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 /bin/bash /var/www/bin/ 
 +cp /​bin/​cat ​/var/www/bin/ 
 +cp /usr/bin/file /​var/​www/​usr/​bin/​ 
 +cp /​usr/​bin/​date /​var/​www/​usr/bin/
  
-# # For x86_64 Debian/Ubuntu+cp /​usr/​share/​misc/​magic.mgc /​var/​www/​usr/​share/​misc/
  
-mkdir /​var/​www/​lib/​ +mkdir /​var/​www/​lib/​ 
-mkdir /​var/​www/​lib64 +mkdir /​var/​www/​lib64 
-mkdir /​var/​www/​lib/​x86_64-linux-gnu/​ +mkdir /​var/​www/​lib/​x86_64-linux-gnu/​ 
-mkdir -p /​var/​www/​usr/​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/​+
  
 +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/​
 +#​debian11_12 cp /​lib/​x86_64-linux-gnu/​libbz2.so.* /​var/​www/​lib/​x86_64-linux-gnu/​
 +#debian12 cp /​lib/​x86_64-linux-gnu/​liblz* /​var/​www/​lib/​x86_64-linux-gnu/​
 +cp /​usr/​lib/​x86_64-linux-gnu/​libmagic.so.* /​var/​www/​usr/​lib/​x86_64-linux-gnu/​
 +</​code><​code>​
 +# sh makechroot.sh
 </​code>​ </​code>​
  
 === Создание окружения через debootstrap === === Создание окружения через debootstrap ===
 +
 +  * [[https://​wiki.debian.org/​ru/​Debootstrap]]
 +
 <​code>​ <​code>​
-root@server:​~# apt install debootstrap+debian# apt install debootstrap
  
-debian# ​cat lsb_release -a+debian# lsb_release -a
  
 debian# debootstrap --variant=minbase --arch amd64 buster /var/www/ debian# debootstrap --variant=minbase --arch amd64 buster /var/www/
Line 60: Line 68:
   * [[http://​www.serverschool.com/​dedicated-servers/​how-to-build-a-chroot-environment-in-centos/​|How to Build a Chroot Environment in CentOS]]   * [[http://​www.serverschool.com/​dedicated-servers/​how-to-build-a-chroot-environment-in-centos/​|How to Build a Chroot Environment in CentOS]]
  
-==== FreeBSD ==== 
- 
-=== Создание окружения "в ручную"​ === 
-<​code>​ 
-# 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/​ 
-</​code>​ 
- 
-=== Создание окружения через make buildworld === 
- 
-[[Технология jail#​Создание "​мира"​]] 
  
 ==== Тестирование ==== ==== Тестирование ====
 <​code>​ <​code>​
-debian# chroot /var/www/ /bin/bash+# chroot /var/www/ /bin/bash
   или   или
-freebsdchroot ​/var/www/bin/sh+unshare -R /var/www /bin/bash
  
 # echo * # echo *
Line 112: Line 84:
 </​code>​ </​code>​
  
-==== Тестирование изоляции процессов ==== 
-<​code>​ 
-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 
-</​code>​ 
 ===== shell inetd web сервер в chroot ===== ===== shell inetd web сервер в chroot =====
  
   * [[Сервис INETD]]   * [[Сервис INETD]]
  
-==== Debian/​Ubuntu/​FreeBSD ​====+==== Debian/​Ubuntu====
  
 <​code>​ <​code>​
Line 141: Line 100:
 ... ...
 base=/ base=/
 +log=/​webd.log
 ... ...
 </​code>​ </​code>​
  
 +===== Поиск всех процессов в chroot =====
  
-==== FreeBSD ====+  * [[https://​support.cpanel.net/​hc/​en-us/​articles/​1500012454701-How-To-Find-The-List-Of-All-The-Chroot-ed-Processes-On-The-System|How To Find The List Of All The Chroot-ed Processes On The System?]]
  
 <​code>​ <​code>​
-# cat /etc/inetd.conf +for file in `find /proc-type l -name "​root"​ -print 2> /dev/null | grep -Eiv /task2> /dev/null`; do PID=`ls -d $file 2> /dev/null| awk -F "/" '​{print $3}'` && printf "%s = %s = %s\n" "​$PID"​ `ps -p "​$PID"​ 2> /dev/null | tail -n1 | awk '​{print $4}'` `readlink $file 2> /dev/null` | grep -Eiv "(= /​$|^\s*=\s*$|^.*?​=\s*$)";​done
-</code><​code>​ +
-... +
-#http stream tcp nowait root /usr/local/sbin/webd webd +
-http stream tcp nowait root /usr/sbin/chroot chroot ​/var/www/ /sbin/webd +
-</code><​code>​ +
-# service inetd restart+
 </​code>​ </​code>​
 +
команда_chroot.txt · Last modified: 2024/05/14 15:09 by val