Stefan Klingner schreef:
> i am testing the chroot feature of peruser and i am not able to run any
> system tool when it is activated.
>
>   
>> <?php
>>     ini_set('display_errors', 'On');
>>     error_reporting(E_ALL);
>>     $ret = shell_exec('echo x:$PATH:x');
>>     var_dump($ret);
>>     $ret = shell_exec('/bin/ls /');
>>     var_dump($ret);
>> ?>
>>     
>
> <Processor test>
>  User test
>  Group www
>  Chroot /var/www/test
> </Processor>
>
> RESULT: NULL NULL
>   
That looks like PHP can't start a shell interpreter (/bin/sh) to execute 
the commands.
> <Processor test>
>  User test
>  Group www
>  #Chroot /var/www/test
> </Processor>
>
> RESULT: string(33) "x:/usr/local/bin:/usr/bin:/bin:x " string(130) "bin
> boot cdrom dev emul etc home initrd.img lib lib64 lost+found media mnt opt
> proc root sbin selinux srv sys tmp usr var vmlinuz " 
>
> JUST A TESTENV... :)
>
> jk_init -v -j /var/www/test basicshell editors extendedshell netutils ssh
> sftp scp
>
> r...@levana /> tree -L 2 /var/www/test
> /var/www/test
> |-- bin
> |   |-- bash
> |   |-- cat
> |   |-- chmod
> |   |-- cp
> |   |-- cpio
> |   |-- date
> |   |-- dd
> |   |-- echo
> |   |-- egrep
> |   |-- false
> |   |-- fgrep
> |   |-- grep
> |   |-- gunzip
> |   |-- gzip
> |   |-- ln
> |   |-- ls
> |   |-- mkdir
> |   |-- mktemp
> |   |-- more
> |   |-- mv
> |   |-- nano
> |   |-- pwd
> |   |-- rm
> |   |-- rmdir
> |   |-- sed
> |   |-- sh -> bash
> |   |-- sleep
> |   |-- sync
> |   |-- tar
> |   |-- touch
> |   |-- true
> |   |-- uncompress
> |   `-- zcat
> |-- dev
> |   |-- null
> |   |-- tty
> |   `-- urandom
> |-- etc
> |   |-- alternatives
> |   |-- bash.bashrc
> |   |-- group
> |   |-- host.conf
> |   |-- hosts
> |   |-- issue
> |   |-- ld.so.cache
> |   |-- ld.so.conf
> |   |-- motd -> /var/run/motd
> |   |-- nsswitch.conf
> |   |-- passwd
> |   |-- profile
> |   |-- protocols
> |   |-- resolv.conf
> |   |-- services
> |   |-- terminfo
> |   `-- vim
> |-- lib
> |   |-- libacl.so.1 -> libacl.so.1.1.0
> |   |-- libacl.so.1.1.0
> |   |-- libattr.so.1 -> libattr.so.1.1.0
> |   |-- libattr.so.1.1.0
> |   |-- libc-2.7.so
> |   |-- libc.so.6 -> libc-2.7.so
> |   |-- libcom_err.so.2 -> libcom_err.so.2.1
> |   |-- libcom_err.so.2.1
> |   |-- libcrypt-2.7.so
> |   |-- libcrypt.so.1 -> libcrypt-2.7.so
> |   |-- libdl-2.7.so
> |   |-- libdl.so.2 -> libdl-2.7.so
> |   |-- libkeyutils-1.2.so
> |   |-- libkeyutils.so.1 -> libkeyutils-1.2.so
> |   |-- libm-2.7.so
> |   |-- libm.so.6 -> libm-2.7.so
> |   |-- libncurses.so.5 -> libncurses.so.5.7
> |   |-- libncurses.so.5.7
> |   |-- libncursesw.so.5 -> libncursesw.so.5.7
> |   |-- libncursesw.so.5.7
> |   |-- libnsl-2.7.so
> |   |-- libnsl.so.1 -> libnsl-2.7.so
> |   |-- libnss_compat-2.7.so
> |   |-- libnss_compat.so.2 -> libnss_compat-2.7.so
> |   |-- libnss_dns-2.7.so
> |   |-- libnss_dns.so.2 -> libnss_dns-2.7.so
> |   |-- libnss_files-2.7.so
> |   |-- libnss_files.so.2 -> libnss_files-2.7.so
> |   |-- libnss_hesiod-2.7.so
> |   |-- libnss_hesiod.so.2 -> libnss_hesiod-2.7.so
> |   |-- libnss_nis-2.7.so
> |   |-- libnss_nis.so.2 -> libnss_nis-2.7.so
> |   |-- libnss_nisplus-2.7.so
> |   |-- libnss_nisplus.so.2 -> libnss_nisplus-2.7.so
> |   |-- libpthread-2.7.so
> |   |-- libpthread.so.0 -> libpthread-2.7.so
> |   |-- libresolv-2.7.so
> |   |-- libresolv.so.2 -> libresolv-2.7.so
> |   |-- librt-2.7.so
> |   |-- librt.so.1 -> librt-2.7.so
> |   |-- libselinux.so.1
> |   |-- libutil-2.7.so
> |   |-- libutil.so.1 -> libutil-2.7.so
> |   `-- terminfo
> |-- lib64 -> /lib
> |-- tmp
> |-- usr
> |   |-- bin
> |   |-- lib
> |   `-- share
> `-- var
>     |-- run
>     `-- www
>   
You seem to miss /var/www/test/libexec/ which contains the dynamic 
linker (ld-elf.so.1).
What happens if you go into the chroot from your shell ?
# chroot /var/www/test /bin/sh

I guess that won't work either.
> any idea? how to you create your chroot/jail? do you not need tools like
> unzip or tar...?
>   
It is weird that jailkit does not install the ld-elf.so.1; but that's 
the best thing I can come up with.
You can try:
# cp -pr /libexec /var/www/test/libexec

to copy it into the jail en retry your tests.

-- Jille
> On Fri, 09 Oct 2009 11:30:56 +0200, Jille Timmermans <[email protected]>
> wrote:
>   
>> Stefan Klingner schreef:
>>     
>>> hi @all,
>>>
>>> thanks for the answers.
>>>
>>> from phpinfo()...
>>>
>>> open_basedir = no value
>>> safe_mode = off
>>>
>>> result of passthru('echo $PATH'); -> NOTHING
>>>   
>>>       
>> It is very unlikely that this will give no result at all.
>> Please try:
>> <?php
>>     ini_set('display_errors', 'On');
>>     error_reporting(E_ALL);
>>     $ret = shell_exec('echo x:$PATH:x');
>>     var_dump($ret);
>>     $ret = shell_exec('/bin/ls /');
>>     var_dump($ret);
>> ?>
>>
>> By the way: Are you testing chroot inside jails ? That sounds
>>     
> oversecured
>   
>> ;)
>> Is there any interest in peruser-jail support ? If so I will take a look
>>     
>
>   
>> at it.
>>
>> -- Jille
>>     
>>> how do you have created your jails? which tools do you used? have
>>>       
> someone
>   
>>> experience with jailkit. it looks like a really powerfull tool and it
>>>       
> is
>   
>>> maintained very well.
>>>
>>> i used jailkit...
>>>
>>> jk_init -j /home/user basicshell
>>> jk_jailuser user
>>>
>>> please help me getting this stuff working because i want to write the
>>> chroot tutorial for peruser. :)
>>>
>>> On Thu, 08 Oct 2009 23:02:21 +0200, Leen Besselink
>>> <[email protected]>
>>> wrote:
>>>   
>>>       
>>>> Jille Timmermans wrote:
>>>>     
>>>>         
>>>>> Stefan Klingner schreef:
>>>>>       
>>>>>           
>>>>>> i try to run a command like "ls /" from a php script inside a jail.
>>>>>>         
>>>>>>             
>>> the 
>>>   
>>>       
>>>>>> jail was created with jailkit and contain the tool + all required 
>>>>>> libaries. if i write exec("ls /"); in a php script, it returns
>>>>>>         
>>>>>>             
>>> nothing. 
>>>   
>>>       
>>>>>> have someone an idea? possibly the processor do not have the path or
>>>>>>         
>>>>>>             
>>> do 
>>>   
>>>       
>>>>>> not know how to find the executable?
>>>>>>
>>>>>>   
>>>>>>         
>>>>>>             
>>>>> Would you please try:
>>>>>
>>>>> passthru('echo $PATH'); // output should contain /bin; if not: the
>>>>>       
>>>>>           
>>> shell
>>>   
>>>       
>>>>> interpreter can not find 'ls'; and you have to specify it as
>>>>>           
> '/bin/ls'.
>   
>>>>> passthru('ls -l /bin/sh'); // might give info about executability
>>>>>
>>>>> And of course check whether safe-mode is off ;)
>>>>>
>>>>>       
>>>>>           
>>>> And possibly: open_basedir ?
>>>>
>>>>     
>>>>         
>>>>> -- Jille
>>>>> _______________________________________________
>>>>> Peruser mailing list
>>>>> [email protected]
>>>>> http://www.telana.com/mailman/listinfo/peruser
>>>>>
>>>>>       
>>>>>           
>>>> _______________________________________________
>>>> Peruser mailing list
>>>> [email protected]
>>>> http://www.telana.com/mailman/listinfo/peruser
>>>>     
>>>>         
>>> _______________________________________________
>>> Peruser mailing list
>>> [email protected]
>>> http://www.telana.com/mailman/listinfo/peruser
>>>   
>>>       
>> _______________________________________________
>> Peruser mailing list
>> [email protected]
>> http://www.telana.com/mailman/listinfo/peruser
>>     
> _______________________________________________
> Peruser mailing list
> [email protected]
> http://www.telana.com/mailman/listinfo/peruser
>   
_______________________________________________
Peruser mailing list
[email protected]
http://www.telana.com/mailman/listinfo/peruser

Reply via email to