Перевод текста на русский язык:
Упражнение 21: Файловая система: изменение корневого каталога, chroot
Исходный текст: Exercise 21. Filesystems: changing root directory, chroot
Переводчик: Летающий дракон
Протокол: CC BY-NC-SA 4.0
Гордо использую Google Translate
Позвольте мне начать с цитаты из Википедии:
В Unix-системах chroot — это операция, которая позволяет изменить корневой каталог для текущего запущенного процесса и его потомков. Программы, запущенные в этой изменённой среде, не могут получить доступ к файлам за пределами указанного дерева каталогов. Термин chroot может относиться к системному вызову chroot(2) или к утилите chroot(8). Изменённая среда называется chroot-тюрьмой.
Это означает, что вы можете создать каталог (например, /opt/root
), скопировать туда необходимые программы и запустить их. Для таких программ /opt/root/
будет являться корневым каталогом /.
Чтобы понять, зачем вам это нужно, прочитайте статью Википедии о chroot chroot
.
Пришло время для упражнения. Сейчас вы будете использовать bash для создания минимальной chroot-среды. Для этого вы создадите структуру каталогов и скопируете туда bash и его зависимости.
Теперь вы узнаете, как создать chroot-окружение и войти в него.
1: sudo -s
2: ldd /bin/bash
3: mkdir -vp /opt/root/bin
4: mkdir -v /opt/root/lib
5: mkdir -v /opt/root/lib64
6: cp -v /bin/bash /opt/root/bin/
7: cp -v /lib/libncurses.so.5 /opt/root/lib/
8: cp -v /lib/libdl.so.2 /opt/root/lib
9: cp -v /lib/libc.so.6 /opt/root/lib
10: cp -v /lib64/ld-linux-x86-64.so.2 /opt/root/lib64
11: chroot /opt/root/
Вау, вы создали свой собственный Linux!
user1@vm1:/opt~ sudo -s
root@vm1:/opt# ldd /bin/bash
linux-vdso.so.1 => (0x00007fff17bff000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00007f4b1edc6000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f4b1ebc2000)
libc.so.6 => /lib/libc.so.6 (0x00007f4b1e85f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4b1f012000)
root@vm1:/opt# mkdir -vp /opt/root/bin
mkdir: created directory `/opt/root'
mkdir: created directory `/opt/root/bin'
root@vm1:/opt# mkdir -v /opt/root/lib
mkdir: created directory `/opt/root/lib'
root@vm1:/opt# mkdir -v /opt/root/lib64
mkdir: created directory `/opt/root/lib64'
root@vm1:/opt# cp -v /bin/bash /opt/root/bin/
`/bin/bash' -> `/opt/root/bin/bash'
root@vm1:/opt# cp -v /lib/libncurses.so.5 /opt/root/lib/
`/lib/libncurses.so.5' -> `/opt/root/lib/libncurses.so.5'
root@vm1:/opt# cp -v /lib/libdl.so.2 /opt/root/lib
`/lib/libdl.so.2' -> `/opt/root/lib/libdl.so.2'
root@vm1:/opt# cp -v /lib/libc.so.6 /opt/root/lib
`/lib/libc.so.6' -> `/opt/root/lib/libc.so.6'
root@vm1:/opt# cp -v /lib64/ld-linux-x86-64.so.2 /opt/root/lib64
`/lib64/ld-linux-x86-64.so.2' -> `/opt/root/lib64/ld-linux-x86-64.so.2'
root@vm1:/opt# chroot /opt/root/
/opt/root/
и /opt/root/bin/
одной командой. Круто, правда?/opt/root/lib
./opt/root/lib64
./bin/bash
в /opt/root/bin/
./lib/libncurses.so.5
в /opt/root/lib/
./lib/libdl.so.2
в /opt/root/lib/
./lib/libc.so.6
в /opt/root/lib/
./lib64/ld-linux-x86-64.so.2
в /opt/root/lib64/
./opt/root/
.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )