Plesk - Adding programs to a chrooted SSH

Just a few notes today about making programs (in this case git) available to a chrooted SSH account in Plesk. I'm assuming the account is already setup for ssh, etc so I will just be covering where to copy the files to.

Note: If you are here about getting an execv("/bin/bash") failed error, check Appendix B


  • /usr/local/bin - The git bin files we will be copying.
  • /usr/local/share/git-core - The shared git-core files.
  • /var/www/vhosts/chroot - The base directory for chroot accessible programs.

Copying Git

Firstly you will want to locate the git files. The easiest way to do this is by typing:

which git

This should tell you the path to git (in my case /usr/local/bin) Next we want to copy the files over to the equivalent path in the chroot directory (/path/to/chroot/usr/local/bin)

cp -R /usr/local/bin/git* /var/www/vhosts/chroot/usr/local/bin

In the case of git, we also want to copy over some other files

cp -R /usr/local/share/git-core /var/www/vhosts/chroot/usr/local/share/git-core
cp -R /usr/local/libexec /var/www/vhosts/chroot/usr/local/libexec/git-core

Note: The libexec files are quite large (100's of mb) so you may want to consider doing this in a better way.

Updating chroot'd directories

The final (rather simple) step involves updating any chrooted directories that have already been created. This can be done by running the script (downloadable from

This can also be done without the script:

/usr/local/psa/admin/sbin/chrootmng --remove --source=/var/www/vhosts/chroot --target=/var/www/vhosts/<domain name> /usr/local/psa/admin/sbin/chrootmng --create --source=/var/www/vhosts/chroot --target=/var/www/vhosts/<domain name> `

Thats it!!

Now when you login to your chrooted account you should be able to use git. I might add the required files for some more programs as I find the need to add them.

Appendix A: Files required for ftp

  • /usr/bin/ftp -> chroot/bin
  • /usr/lib64/ -> chroot/lib/
  • /usr/lib64/ -> chroot/lib/
  • /etc/services -> chroot/etc/services

Appendix B: execv("/bin/bash") failed

One cause of this occuring is due to the bin files for a chrooted directory not exisiting/being properly setup. This can be fixed by following the instructions in Updating chroot'd directories above.. or if you're too lazy to scroll (like me)

/usr/local/psa/admin/sbin/chrootmng --remove --source=/var/www/vhosts/chroot --target=/var/www/vhosts/<domain name>
/usr/local/psa/admin/sbin/chrootmng --create --source=/var/www/vhosts/chroot --target=/var/www/vhosts/<domain name>