Вам нужно будет установить "тюрьму". Из здесь:
Создать новый каталог:
mkdir -p /home/test
Найдите файлы, необходимые для поддержки сеанса.В идеале вам нужен только самый минимум, поскольку цель состоит в том, чтобы скрыть остальную часть системы :
.
ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
Теперь можно создавать необходимые /dev
файлы. Здесь -m
устанавливает разрешения, а c
— для символьного устройства, а два числа — это старший и младший номера устройства :
.
mkdir -p /home/test/dev/
cd /home/test/dev/
mknod -m 666 null c 1 3
mknod -m 666 tty c 5 0
mknod -m 666 zero c 1 5
mknod -m 666 random c 1 8
Теперь вы можете указать, что файлы принадлежат root
и доступны для записи только root
:
.
chown root:root /home/test
chmod 0755 /home/test
Сначала добавьте бинарный файл оболочки, напримерbash
:
mkdir -p /home/test/bin
cp -v /bin/bash /home/test/bin/
Выясните, какие библиотеки bash
нужны для запуска. (ПРИМЕЧАНИЕ. :вам может понадобиться больше, чем просто библиотеки lib64. Например, мои находятся в /lib/x86_64-linux-gnu/
и/lib64
):
ldd /bin/bash
mkdir -p /home/test/lib64
cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
Сначала создайте пользователя и дайте ему пароль:
useradd sshguest
passwd sshguest
Теперь переместите необходимые /etc
файлы:
mkdir /home/test/etc
cp -vf /etc/{passwd,group} /home/test/etc/
Используйте свой любимый редактор, чтобы добавить следующие строки в/etc/ssh/sshd_config
:
#define username to apply chroot jail to
Match User sshguest
#specify chroot jail
ChrootDirectory /home/test
Затем загрузите новую конфигурацию, перезапустив службу:
sudo service sshd restart
Вы должны иметь возможность подключаться и запускать встроенные -модули оболочки:
ssh sshguest@[IP of Host]
$ pwd
$ echo "foo"
Сначала дайте аккаунту дом:
mkdir -p /home/test/home/tecmint
chown -R sshguest:sshguest /home/test/home/sshguest
chmod -R 0700 /home/test/home/sshguest
Теперь для любой программы, к которой вы хотите, чтобы окруженная оболочка имела доступ, вам нужно повторить копирование бинарного файла и проверить, какие разделяемые библиотеки необходимы, и скопировать их так же, как вы сделали с bash
. Так что, если вы хотите ls
, вы бы сделали:
cp -v /bin/ls /home/test/bin/
ldd /bin/ls
cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/
### or whatever directory and libs you need on your system