Ключевые слова:login, chroot, (найти похожие документы)
- RU.UNIX (2:5077/15.22) -------------------------------------------- RU.UNIX -
From : Serge Y. Zhukov 2:5020/400 03 Oct 00 09:59:14
Subj : chroot login
-------------------------------------------------------------------------------
From: "Serge Y. Zhukov" <serge@sci-nnov.ru>
"Oleg Belousov" <strijar@urai.ru> wrote in message
news:39D94EDD.5470F7C1@urai.ru...
> > Решил с chroot'ом побаловаться.
> >
> > Сделал дерево, скопировал bash.
> > chroot /home/chrooted /bin/bash - работает.
> >
> > А вопрос в том, как сделать так, чтобы юзверь логинился
> > и делался chroot ? Как нужно прописать шелл ?
> >
> > Я пока не понимаю. /usr/sbin/chroot /home/chrooted (as shell) не
> > работает.
> >
>
> Сделай скрипт - chroot_sh
> #!/bin/sh
> chroot /home/chrooted /bin/bash
>
> и пропиши его шелом для этого юзера.
> Да и в /etc/shells его не забудь добаваить ;))
Hе получится, потому что chroot возможен только от рута, а sh запускается
уже с привилегиями пользователя, т.е. технология такова:
1. inetd запускает telnetd от root
2. telnetd запускает login от root
3. login запускает shell для пользователя с его правами.
Так, что надо ковырять login и делать chroot() в зависимости от пользователя
до того как он изменит права root на данного пользователя.
Либо писать написать скрипт и давать его telnetd как альтернативный login.
inetd.conf:
telnet stream tcp nowait root /usr/libexec/telnetd telnetd -p
/usr/sbin/mylogin
mylogin:
#!/bin/sh
read -p "login: " USER
if [ "x$USER" = "xsergeyl" ] ; then
/usr/sbin/chroot /home/sergeyl login $* $USER
elif
then
login $* $USER
fi
Hо, что-то мне кажется, что это в плане безопасности не совсем правильно.
--------
SYZ1-RIPE
Serge Y. Zhukov, e-mail: serge@sci-nnov.ru, phone: +7 (831-2) 38-42-55
System administrator, Sandy Info Ltd. (ISP), Nizhny Novgorod, Russia
--- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400)
- RU.UNIX (2:5077/15.22) -------------------------------------------- RU.UNIX -
From : Dennis Melentyev 2:5020/400 03 Oct 00 11:48:12
Subj : chroot login
-------------------------------------------------------------------------------
From: dennis@mebius-kb.kiev.ua (Dennis Melentyev)
Reply-To: dennis@mebius-kb.kiev.ua
On 3 Oct 2000 09:59:14 +0400, Serge Y. Zhukov wrote:
>Hе получится, потому что chroot возможен только от рута, а sh запускается
>уже с привилегиями пользователя, т.е. технология такова:
[...]
>Hо, что-то мне кажется, что это в плане безопасности не совсем правильно.
Поэтому можно сделать так:
в /etc/sudoers:
User_Alias CHROOTUSERS=foo,bar,dupe
Host_Alias MYHOST=127.0.0.1, 192.168.0.1
Cmnd_Alias CHROOTSH=/usr/local/sbin/My_Cool_Chroot.sh
CHROOTUSERS MYHOST=(root) NOPASSWD: CHROOTSH
и вызывать sudo -- /usr/local/sbin/My_Cool_Chroot.sh
Hе проверял, возможны ошибки - man sudo sudoers
--
Dennis Melentyev
C/C++ programmer @ Mebius-KB, Kiev, Ukraine
dennis@mebius-kb.kiev.ua
--- ifmail v.2.15dev5 * Origin: Mebius-KB (2:5020/400)
Если делать свой скрипт вместо шелла с "read -p "Login: " username и т.д. , то вход в систему зацикливается из-за вызова login в скрипте. (проверено). При этом первый раз приглашение ко вводу логина идет стандартное, второе от скрипта. Раз даже удалось после ^C на приглашение от скрипта - войти в систему и при этом юзера под w не было, но в процессах его шелл был виден, что совсем уж странно. Отсюда лишь один вывод: такие скрипты - писать нельзя и потенциально опасно.
#uname -rs
FreeBSD 5.3-RELEASE