Pages : 1
#1 Le 16/12/2012, à 20:52
- aurelien79
Chroot une application Java
Bonjour,
Je recherche a Chrooter Subsonic (une application Java de streaming de musique).
Voici la methode que j'ai utilisé :
$sudo su
$useradd -d /home/chroot/subsonic3 -s /bin/chroot subsonic3
$nano /bin/chroot
#!/bin/bash
exec -c /usr/sbin/chroot /home/chroot/$USER /bin/bash
$cd /home/chroot/subsonic3
$mkdir bin
$cp /bin/bash bin/bash
$ldd /bin/bash
$ mkdir lib
$cp /lib/i386-linux-gnu/libtinfo.so.5 lib
$cp /lib/i386-linux-gnu/libdl.so.2 lib
$cp /lib/i386-linux-gnu/libc.so.6 lib
$su subsonic3
/usr/sbin/chroot: cannot change root directory to /home/chroot/subsonic3: Operation not permitted
J'ai suivis ce guide Lea Linux
Je suppose que c'est une histoire de droit mais je ne vois pas où les mettre.
Pour info :
$ ll /bin/chroot
-rwxr-xr-x 1 root root 66 Dec 16 18:39 /bin/chroot*
$ll /home/chroot/ /home/chroot/subsonic3/ /home/
/home/:
total 24
drwxr-xr-x 6 root root 4096 Dec 16 18:46 ./
drwxr-xr-x 24 root root 4096 Dec 2 18:43 ../
drwxr-xr-x 3 subsonic3 subsonic3 4096 Dec 16 18:46 chroot/
/home/chroot/:
total 12
drwxr-xr-x 3 subsonic3 subsonic3 4096 Dec 16 18:46 ./
drwxr-xr-x 6 root root 4096 Dec 16 18:46 ../
drwxr-xr-x 4 subsonic3 subsonic3 4096 Dec 16 19:50 subsonic3/
/home/chroot/subsonic3/:
total 16
drwxr-xr-x 4 subsonic3 subsonic3 4096 Dec 16 19:50 ./
drwxr-xr-x 3 subsonic3 subsonic3 4096 Dec 16 18:46 ../
drwxr-xr-x 2 subsonic3 subsonic3 4096 Dec 16 18:49 bin/
drwxr-xr-x 2 subsonic3 subsonic3 4096 Dec 16 19:51 lib/
Une idée ?
Apres je suppose que je devrais ajouter les librairies Java (/usr/bin/java /usr/bin/X11/java /usr/share/java /usr/share/man/man1/java.1.gz)
Hors ligne
#2 Le 17/12/2012, à 00:57
- darunia_goron
Re : Chroot une application Java
Seul root peut utiliser chroot. Modifier /bin/chroot en
#!/bin/bash
sudo exec -c /usr/sbin/chroot /home/chroot/$USER /bin/bash
et ajouter subsonic3 au groupe sudo devrait palier à ton problème.
P.S. : je n'ai que lu la première moitié du message.
Dernière modification par darunia_goron (Le 17/12/2012, à 00:57)
Hors ligne
#3 Le 18/12/2012, à 18:05
- aurelien79
Re : Chroot une application Java
J'ai essayé mais cela ne fonctionne pas.
$adduser subsonic3 sudo
$passwd subsonic3
$su subsonic3
[sudo] password for subsonic3:
sudo: exec: command not found
Hors ligne
#4 Le 18/12/2012, à 19:38
- darunia_goron
Re : Chroot une application Java
En effet, est-ce que ça marche avec :
#!/bin/bash
exec sudo -c /usr/sbin/chroot /home/chroot/$USER /bin/bash
?
Hors ligne
#5 Le 19/12/2012, à 21:52
- aurelien79
Re : Chroot une application Java
Pas mieux et logique :
$su subsonic3
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user
name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user
name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u
user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u
user name|#uid] file ...
Hors ligne
#6 Le 19/12/2012, à 22:53
- darunia_goron
Re : Chroot une application Java
Désolé, j'ai rédigé un peu vite sans tester (et ceux deux fois, je suis minable).
exec [-cl] [-a name] [command [arguments]] If command is specified, it replaces the shell. No new process is created. The arguments become the arguments to command. If the -l option is supplied, the shell places a dash at the begin‐ ning of the zeroth argument passed to command. This is what login(1) does. The -c option causes command to be executed with an empty environment. If -a is supplied, the shell passes name as the zeroth argument to the executed command. If command can‐ not be executed for some reason, a non-interactive shell exits, unless the shell option execfail is enabled, in which case it returns failure. An interactive shell returns failure if the file cannot be executed. If command is not specified, any redi‐ rections take effect in the current shell, and the return status is 0. If there is a redirection error, the return status is 1.
L'argument -c doit bien sûr être passé à exec et non à sudo.
La troisième fois sera-t-elle la bonne ? Essaye :
#!/bin/bash
exec -c sudo /usr/sbin/chroot /home/chroot/$USER /bin/bash
La commande est cette fois syntaxiquement correcte (contrairement aux deux fois d'avant).
Aussi, je n'en suis pas certain, mais il est probable que tu doives créer un mot de passe pour l'utilisateur subsonic3 (sudo passwd subsonic).
Hors ligne
Pages : 1