Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
chroot: cannot run command `/bin/sh': No such file or direct
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Tue May 17, 2005 12:12 pm    Post subject: chroot: cannot run command `/bin/sh': No such file or direct Reply with quote

привет :)
всё делалось по доке http://butsugenjitemple.org/~ka0ttic/docs/apache_chroot/
после

# mkdir /chroot
# mkjailenv /chroot/apache
# addjailsw /chroot/apache


решил проверить -получилось али нет:

Code:

caps linux # mkdir /chroot
caps linux # mkjailenv /chroot/apache

mkjailenv
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas <assman@gsyc.inf.uc3m.es>

Making chrooted environment into /chroot/apache
        Doing preinstall()
        Doing special_devices()
        Doing gen_template_password()
        Doing postinstall()
Done.

caps linux #
caps linux # addjailsw /chroot/apache/

addjailsw
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas <assman@gsyc.inf.uc3m.es>

Guessing mv args()
Guessing ls args()
Guessing ln args()
Guessing grep args()
Guessing cat args()
Guessing rmdir args()
Guessing vi args(-c q)
Guessing tail args()
Guessing sh args()
Guessing id args()
Guessing rm args()
Guessing head args()
Guessing cp args()
Guessing pwd args()
Guessing mkdir args()
Guessing touch args()
Guessing more args()
Warning: not allowed to overwrite /chroot/apache//etc/passwd
Warning: not allowed to overwrite /chroot/apache//etc/group
Warning: can't create /proc/meminfo from the /proc filesystem
Warning: file /chroot/apache//usr/share/vim/vimfiles/ exists. Overwritting it
Warning: file /chroot/apache//usr/share/vim/vimfiles/ exists. Overwritting it
Warning: file /chroot/apache//usr/share/vim/vim63/ exists. Overwritting it
/bin/mknod: `/chroot/apache//dev/urandom': File exists

Done.

caps linux # chroot /chroot/apache/ /bin/sh
chroot: cannot run command `/bin/sh': No such file or directory



что за лажа - подозреваю, не хватает млиб или файлов...
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Tue May 17, 2005 2:03 pm    Post subject: Re: chroot: cannot run command `/bin/sh': No such file or di Reply with quote

Quote:

chroot /chroot/apache/ /bin/sh

вроде не влияет но,
там вроде написано
chroot /chroot/apache /bin/sh
_________________^
Quote:
что за лажа - подозреваю, не хватает млиб или файлов...

ls -l /chroot/apache/bin/sh
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Tue May 17, 2005 2:30 pm    Post subject: Reply with quote

Должен быть файлик /chroot/apache/bin/sh. Если в той же папке есть bash, то можно симлинк сделать.

Я так думаю...
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Tue May 17, 2005 2:58 pm    Post subject: Reply with quote

Но это нахер не надо, mod_chroot делает свою работу добротно. Только запускать серв надо через apache2ctl самому или же сделать startup script. Для рестарта юзать stop -> start, иначе траблы будут.
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Wed May 18, 2005 6:23 am    Post subject: Reply with quote

YD wrote:
.....
mod_chroot делает свою работу добротно. ...

он загоняет в chroot весь апач или только запущенные в нём сервлеты ?
Back to top
View user's profile Send private message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Wed May 18, 2005 6:40 am    Post subject: Reply with quote

viy wrote:
Должен быть файлик /chroot/apache/bin/sh. Если в той же папке есть bash, то можно симлинк сделать.

Я так думаю...


ну конечно же он там лежит! помимо того, система его видит
caps ~ # chroot /chroot/apache/ /bin/sh
chroot: cannot run command `/bin/sh': No such file or directory
caps ~ # chroot /chroot/apache/ /bin/sh/
chroot: cannot run command `/bin/sh/': Not a directory
caps ~ # ls -l /chroot/apache/bin/sh
-rwxr-xr-x 1 root root 665380 May 17 15:09 /chroot/apache/bin/sh
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Wed May 18, 2005 7:03 am    Post subject: Reply with quote

Quote:

...
caps ~ # chroot /chroot/apache/ /bin/sh/
...

такая строка много говорит о написавшем её .... :)
chroot /chroot/apache /bin/sh
-
проверить либы
ldd /bin/sh
покажет нужные либы
ищем их в /chroot/apache/lib
пример:
iam:# ldd /bin/sh
libdl.so.2 => /lib/libdl.so.2 (0x4001e000)
libc.so.6 => /lib/libc.so.6 (0x40022000)
/lib/ld-linux.so.2 (0x40000000)
==> должны быть
/chroot/apache/lib/libdl.so.2
/chroot/apache/lib/libc.so.6
/chroot/apache/lib/ld-linux.so.2
P.S. jail собирался без ошибок ?
Back to top
View user's profile Send private message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Wed May 18, 2005 7:49 am    Post subject: Reply with quote

[quote="bukazoid"]
Quote:

...
caps ~ # chroot /chroot/apache/ /bin/sh/
...

такая строка много говорит о написавшем её .... :)
chroot /chroot/apache /bin/sh

дядя, если ты не понял - это было сделан для проверки - как ругнётся, и я выделил чернём статус- специально что бы понятно было что находит и говорит что это не директория :\
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Wed May 18, 2005 1:38 pm    Post subject: Reply with quote

Народ мало того, что вы сейчас заепётесь делать chroot environment. Мало того, что в вы не static скомпилили. Мало того, в chroot'e будет sh... Представьте теперь что вам придётся при каждом обновлении проделывать это ЗАНОГО и САМОМУ следить за версиями. Есть варианты.
1.
Code:
ROOT="/chroot/apache" emerge -Dpv apache

2.
Поставьте mod_chroot, сразу столько гемора с плеч. Притом судя по поведению в chroot запирается апаче полностью Читайте доку, поймёте. + У вас в chroot'e не будет НИЧЕГО кроме самих сайтов (PHP и т.п. подобное собирайте как модуль), DB сокета и pid-файла.


з.ы. А вообще юзать апаче для chroot'a нелогично, ибо chroot апаче не брат, есть замечательный web-сервер lighttpd.
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Wed May 18, 2005 2:21 pm    Post subject: Reply with quote

YD wrote:

Code:
ROOT="/chroot/apache" emerge -Dpv apache


chroot для безопасности, ROOT= зделает так что поставится масса потенциально опасных програм


Last edited by bukazoid on Wed May 18, 2005 2:30 pm; edited 1 time in total
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Wed May 18, 2005 2:30 pm    Post subject: Reply with quote

Да хоть сотня, через ROOT делается своя мини-Gentoo ;) и она не зависит от материнской ОС. записи об установленных пакетах пишутся туда же в chroot. Надо тогда скрипт и рекурсивно обходить все подкаталоги chroot. У меня установлены все сервисы, которые нативно делают chroot, такие как djbdns (через daemontools), vsftpd и другие. Искуственно вешать BIND или там другие сервисы в chroot =/ Ну блин, каменный век.
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Wed May 18, 2005 2:31 pm    Post subject: Reply with quote

bukazoid wrote:
YD wrote:

Code:
ROOT="/chroot/apache" emerge -Dpv apache


нет не согласен
chroot для безопасности, ROOT= зделает так что поставится масса потенциально опасных програм

__
edited
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Wed May 18, 2005 2:32 pm    Post subject: Reply with quote

некрасиво делать edit и полностью менять пост =/

[edit]
Да и насчёт безопасности, я на это намекнул в том же посте, где написал ROOT=.. emerge ..
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Wed May 18, 2005 2:36 pm    Post subject: Reply with quote

YD wrote:
некрасиво делать edit и полностью менять пост =/

извеняй думал успею пока никто не прочитал .... :(
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Wed May 18, 2005 2:48 pm    Post subject: Reply with quote


    chroot - the mod_chroot way

    mod_chroot allows you to run Apache in a chroot jail with no additional files. The chroot() system call is performed at the end of startup procedure - when all libraries are loaded and log files open. There are still some things you have to keep in mind - see below.

не совсем понял, говорится что:
1 грузятся libs
2 открываются logs
3 делается chroot
4 запускается apache
?
add
P.S. вообще проблема была что chroot не работает ....
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Wed May 18, 2005 5:05 pm    Post subject: Reply with quote

1. инициализация апаче и модулей
2. последним в списке LoadModule должен быть mod_chroot, подгружается mod_chroot.
3. вызывается системный вызов chroot и попадаем в "тюрьму"
4. Вот теперь apache слушает на сокете и принимает вызовы, запущенные child'ы тоже работают в chroot'e.

P.S. Добавлю от себя.

Для нескольких сайтов систему надо строить на VHost'ах. Для этого в главном конфиге пишем:
Quote:

DocumentRoot / #(не охота гадить реальный / линками на chroot)
Listen 127.0.0.1:80

В конфиге vhost'ов
Quote:


#network IP
NameVirtualHost a.b.c.d:80

#Obrazec VHOSTA
<VirtualHost a.b.c.d:80 _default_>
ServerName defaultvhost
DocumentRoot /defaultvhost
<Directory /defaultvhost>
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>



При старте будут ворнинги, что у vhost'ов не существует DocumentRoot, но это понятно почему.

делаем
Code:
mkdir -p /chroot/apache/var/run && touch /chroot/apache/var/run/apache2.pid && ln -sfn /chroot/apache/var/run/apache2.pid /var/run/apache2.pid && apache2ctl start

Писал по памяти, мог где-то ошибиться.
Note: /etc/init.d/apache2 на сколько помню глючит с таким конфигом & /var/run/apache2.pid линк может пропадать, желательно в скрипт записать принудительно делать перед apache2ctl.
Back to top
View user's profile Send private message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Thu May 19, 2005 9:30 am    Post subject: Reply with quote

как бы пологичнее организвать
chroot для vsftpd,apache+php,mysql,bind ? я вижу ты дока в этом деле, было бы приятно получить инфу ;)
получше своместить ?
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Thu May 19, 2005 11:46 am    Post subject: Reply with quote

vsftpd - достаточно секьюрный, сам входит в chroot после того, как юзер залогинится.
apache+mod_php - уже говорил mod_chroot (есть mod_security, но я решил что он пока не требуется мне).
mysql - есть конечно вариант, что кто-то может получить достаточный доступ к публичному сервису, чтобы ломать mysql с него. Но в принципе PAX + grsec делают своё дело и mysql можно оставить как есть, главное чтоб PHP мог приконнектиться к сокету.
bind - не произноси даже это слово ;) djbdns ОЧЕНЬ прост в настройке. По дефолту сделан для работы в chroot'e (его туда daemontools загоняют).
Back to top
View user's profile Send private message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Thu May 19, 2005 1:18 pm    Post subject: Reply with quote

ls /var/run/ -l
lrwxrwxrwx 1 root root 34 May 19 16:03 apache2.pid -> /chroot/apache/var/run/apache2.pid

caps run # apache2ctl start
(20014)Error string not specified yet: Error retrieving pid file /var/run/apache2.pid
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Thu May 19, 2005 2:43 pm    Post subject: Reply with quote

Извиняюсь, я ступил. Мне просто вспомнился мануал по mod_chroot. Тогда давно тоже наткнулся на эту траблу.
Code:
rm /chroot/apache/var/run/apache2.pid && apache2ctl -k start

NOTE: symlink в /var/run должен остаться, хотя он будет ссылатся на несуществующий файл.
Back to top
View user's profile Send private message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Thu May 19, 2005 2:51 pm    Post subject: Reply with quote

UPDATE: я опечатлся с симлинком :))
Code:

caps run # ls -l /var/run/
total 24
lrwxrwxrwx  1 root   root    28 May 20 10:10 apache2.pid -> /var/www/var/run/apache2.pid



я сделал так:
mkdir -p /var/www/var/run
ln -sf /var/www/var/run/apache.pid /var/run/apache.pid
в конфиге httpd.conf подравил всё что было /var/www/localhost/htdocs/ на /localhost/htdocs
в vhosts.conf всё что было /var/www/vhostX.com на /vhostX.com (соответсвенно
/var/www/vhost1.com/htdocs => /vhost1.com/htdocs
/var/www/vhost1.com/cgi-bin/ => //vhost1.com/cgi-bin)
тепрь не работает пхп :)
модуль подгружает а в ответ пустоту - будем колупать ;)

Apache/2.0.54 (Gentoo/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e Hardened-PHP/4.3.11 mod_chroot/0.4 Server at 10.10.0.1 Port 80


Last edited by [clu] on Fri May 20, 2005 7:13 am; edited 2 times in total
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Thu May 19, 2005 4:50 pm    Post subject: Reply with quote

ёпрст ты всё наоборот сделал :>
Back to top
View user's profile Send private message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Fri May 20, 2005 7:09 am    Post subject: Reply with quote

YD wrote:
ёпрст ты всё наоборот сделал :>

бл.... да как это ? %\
вроде всё по логие и правильно. напиши плз что не так ^_^
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Fri May 20, 2005 9:04 am    Post subject: Reply with quote

Quote:
Last edited by [clu] on Fri May 20, 2005 2:13 am; edited 2 times in total
%)
Сейчас норм? Помнится у меня были небольшие траблы с PHP, но уже не помню в чём у меня загвоздка была.
Back to top
View user's profile Send private message
[clu]
Apprentice
Apprentice


Joined: 23 Feb 2004
Posts: 160
Location: 127.0.0.1

PostPosted: Fri May 20, 2005 9:50 am    Post subject: Reply with quote

нет :(
запускает и фунциклиурет с вхостами нормально, но ни пхп ни перл не выполняет.
перл - понятно ( как боротся ещё нет) почему. а вот пхп - темная лошадка - даже в access_log Не пишет обращения.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum