На 64-битном хосте CentOS я использую скрипт make_chroot_jail.sh
чтобы поместить пользователя в тюрьму, не позволяя ему увидеть что-либо, ожидающее его нахождение в /home/jail/home/user1
.
Я сделал это, набрав это:
sudo ./make_chroot_jail.sh user1
после того, как при попытке подключиться к user1 сначала я получил ошибку вроде:
/bin/su: user guest does not exist
я исправил это, скопировав некоторые пропущенные библиотеки:
sudo cp /lib64/libnss_compat.so.2 /lib64/libnss_files.so.2 /lib64/libnss_dns.so.2 /lib64/libxcrypt.so.2 /home/jail/lib64/
sudo cp -r /lib64/security/ /home/jail/lib64/
Но теперь, когда я пытаюсь подключиться к user1, набирая su user1
а затем вводя его пароль, я получаю эту ошибку:
could not open session
Так что вопрос в том, как подключиться к user1 в этой ситуации?
PS Вот разрешения для некоторых файлов, это может быть полезно для решения проблемы:
-rwsr-xr-x 1 root root /home/jail/bin/su
drwxr-xr-x 4 root root /home/jail/etc
-rw-r--r-- 1 root root /home/jail/etc/pam.d/su
-rw-r--r-- 1 root root /home/jail/etc/passwd
-rw------- 1 root root /home/jail/etc/shadow
Update1
После некоторых изменений мне удалось подключиться к user1, но сессия сразу же закрывается! Я предполагаю, что это проблема PAM, однако не могу найти способ исправить это.
Вот запись в журнале для близких действий из /val/log/secure
:
Oct 6 15:19:42 localhost su: pam_unix(su:session): session closed for user user1
Что заставляет сеанс выходить сразу после запуска?