Это целое соглашение с тюрьмами и chroot немного сбивает с толку меня. Они используются для выполнения возможно опасных программ надежно, но это должно инициироваться пользователем. Я ищу, как заключить в тюрьму пользователей как то, как Android и iOS делают это. Это может быть установкой для удаленных входов в систему, но как это может быть установлено для домашних логинов?
Предположите, что мне установили Ubuntu на настольном ПК. Существует четыре пользователя: администратор, user1, user2, и гость. Первое входит в систему как учетная запись, обычно делает. Второй и третий вход в систему тюрьмы. Четвертые журналы в более строгую тюрьму, чем второе и третье. Эти заключенные в тюрьму учетные записи имеют доступ к виртуализированной своего рода среде? Они включают копии базовых двоичных файлов, или они создаются во все, интерфейс? Они выполняются со сценариями инициализации или чем-то еще?
Установка тюрьмы Chroot
Создает пользователя, чтобы быть заключенной в тюрьму.
$sudo adduser acer
установка For chroot мы должны установить sudo полномочие на пользователей.
Добавляют пользователя в sudo папке Create группы
$sudo adduser acer sudo
для установки пользователя в тюрьме
$sudo mkdir /chroot
, пользователь тюрьмы может получить доступ только, безотносительно в/chroot папке
Это означает, что мы должны обеспечить что-то там, если пользователь только не видит, что пустая папка
Просто создает основные необходимые вещи
$cd /chroot
$ sudo mkdir bin dev etc home lib usr var
$sudo mkdir etc/pam.d home/acer lib/security var/log usr/bin
, Мы хотим скопировать программное обеспечение в/chroot, который пользователь тюрьмы может способный использовать
команда
$which bash
/bin/bash
$sudo cp /bin/bash /chroot/bin
$ldd /bin/bash
#This ldd command is used to list the library function
linux-gate.so.1 => (0xb772d000)
libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xb76f0000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb76eb000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb753c000)
/lib/ld-linux.so.2 (0xb772e000)
Copy this lib file to chroot lib directory
$sudo cp /lib/i386-linux-gnu/libtinfo.so.5 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libdl.so.2 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libc.so.6 /chroot/lib
$sudo cp /lib/ld-linux.so.2 /chroot/lib
Bash ls Копия команды
$which ls
/bin/ls
$sudo cp /bin/ls /chroot/bin
$ldd /bin/ls
linux-gate.so.1 => (0xb771f000)
libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb76e1000)
libacl.so.1 => /lib/i386-linux-gnu/libacl.so.1 (0xb76d8000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7529000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb74eb000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb74e6000)
/lib/ld-linux.so.2 (0xb7720000)
libattr.so.1 => /lib/i386-linux-gnu/libattr.so.1 (0xb74e0000)
, этот библиотечный файл к chroot каталогу
$sudo cp /lib/i386-linux-gnu/libselinux.so.1 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libacl.so.1 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libc.so.6 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libpcre.so.3 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libdl.so.2 /chroot/lib
$sudo cp lib/i386-linux-gnu/libattr.so.1 /chroot/lib
$sudo cp /lib/ld-linux.so.2 /chroot/lib
lib su команда
$which su
/bin/su
$sudo cp /bin/su /chroot/su
$ldd /bin/su
linux-gate.so.1 => (0xb7737000)
libpam.so.0 => /lib/i386-linux-gnu/libpam.so.0 (0xb770d000)
libpam_misc.so.0 => /lib/i386-linux-gnu/libpam_misc.so.0 (0xb7709000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb755a000)
libaudit.so.1 => /lib/i386-linux-gnu/libaudit.so.1 (0xb7535000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7530000)
/lib/ld-linux.so.2 (0xb7738000)
Copy this lib file to chroot lib directory
$sudo cp /lib/i386-linux-gnu/libpam.so.0 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libpam_misc.so.0 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libc.so.6 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libaudit.so.1 /chroot/lib
$sudo cp /lib/i386-linux-gnu/libdl.so.2 /chroot/lib
$sudo cp /lib/ld-linux.so.2 /chroot/lib
Добавляет некоторые файлы конфигурации системы и дополнительные библиотеки к Копии chroot
$cat /etc/passwd | grep acer > /chroot/etc/passwd
$cat /etc/passwd | grep root >> /chroot/etc/passwd
$cat /etc/group | grep acer > /chroot/etc/group
$cat /etc/group | grep root >> /chroot/etc/group
$cat /etc/shadow | grep acer > /chroot/etc/shadow
nsswitch.conf файл к/chroot
$sudo cp /etc/nsswitch.conf /chroot/etc/nsswitch.conf
В nsswitch, это должно быть похожим на следование
passwd: files
group: files
shadow: files
hosts: files
networks: files
protocols: files
services: files
ethers: files
rpc: files
netgroup: files
, Мы копируем конфигурационные файлы, необходимые для системы PAM для работы так, чтобы авторизация в тюрьме могла работать
$sudo cp /etc/pam.d/common-account /chroot/etc/pam.d/
$sudo cp /etc/pam.d/common-auth /chroot/etc/pam.d/
$sudo cp /etc/pam.d/common-session /chroot/etc/pam.d/
$sudo cp /etc/pam.d/su /chroot/etc/pam.d/
, Мы добавляем некоторые дополнительные библиотеки, требуемые PAM и средствами переключателя службы имен
$sudo cp /lib/libnss_files.so.2 /chroot/lib
$sudo cp /lib/libnss_compat.so.2 /chroot/lib
$sudo cp /lib/libnsl.so.1 /chroot/lib
$sudo cp -fa /lib/security/ /chroot/lib
, Мы должны создать login.defs файл в/chroot/etc/каталоге. Этот файл определяет некоторую установку для процесса входа в систему
$sudo vim /chroot/etc/login.defs
, Включают следующую строку в login.defs файл
SULOG_FILE /var/log/sulog
, Если бы мы не сделали этого, то команда su попыталась бы использовать утилиту системного журнала, которая не доступна в установке тюрьмы, и весь процесс перестал бы работать.
Создают сценарий, который поместит нашего пользователя в тюрьму, каждый раз, когда он входит в систему в к системе
, Создают файл jailshell в / каталоге bin, возле тюрьмы
$sudo vim /bin/jailshell
Включают следующий сценарий в тот файл
#!/bin/bash
sudo chroot /chroot /bin/su acer
, Делают его исполняемым файлом
$sudo chmod +x /bin/jailshell
Для помещения сценария в действие, мы должны отредактировать/etc/passwd файл (который является за пределами тюрьмы).
Изменение/bin/bash к/bin/jailshell в пользовательском клене
$sudo vim /etc/passwd
acer:x:1003:1003:,,,:/home/acer:/bin/jailshell
клен Пользователя аппарата в корневом каталоге
$cd /home/acer
$sudo cp -fa ./ /chroot/home/acer
тюрьмы следующее могло также быть полезно
$sudo cp /etc/bash.bashrc /chroot/etc/
$sudo cp /etc/localtime /chroot/etc/
$sudo cp /etc/services /chroot/etc/
$sudo cp /etc/protocols /chroot/etc/
$sudo cp /usr/bin/dircolors /chroot/usr/bin/
$sudo cp /usr/bin/groups/ /chroot/usr/bin/
Все сделанное. Теперь протестируйте вход в систему
$su – acer
password:xxxx
[sudo]password for acer:xxxx
acer@Snovabits:/$ ls
bin dev etc home lib usr var