Previously all our web customers were setup to access their SFTP using the shell /bin/bash(chrooted). As of 1-17-17 it was working for everyone. The following monday 1-20-17 it was not. This issue is affecting ALL domains that used /bin/bash(chrooted) as the shell.

When trying to connect, FTP error: EOF while reading packet. Please contact your web hosting service provider for assistance.

When trying to connect via SSH on command line, error: Could not chdir to home directory /var/www/vhosts/domain.com: No such file or directory /usr/local/psa/bin/chrootsh: No such file or directory Connection to domain.com closed.

I can't find any record of any relevant updates to Plesk, I certainly didn't change anything. The only update I see in Plesk history is an update from PHP 7 to PHP 7.0.14. I've been doing some searching, what I found(in below examples, I replaced the actual username with "username" and the actual domain with "domain.com"):

  1. The FTP user in /etc/passwd shows correctly as far as I can tell: username:x:10057:1004::/var/www/vhosts/domain.com:/usr/local/psa/bin/chrootsh

  2. there have been no changes to user or group permissions. The user is correctly assigned to the psacln group, just like before.

  3. The /var/www/vhosts/chroot folder has everything it needs as far as I can tell, and all permissions and ownership are correct.

  4. I have tried the method from Plesk here: https://support.plesk.com/hc/en-us/articles/213909545--HOWTO-How-to-add-new-programs-to-a-chrooted-shell-environment-template, didn't work. I even renamed the chroot folder to chroot_old and reinstalled, no difference.

  5. I have tried adding user-specific rules to the sshd_config file in /etc: Match User username ChrootDirectory /var/www/vhosts/chroot Then restarting sshd, no go.

  6. I also ran the plesk repair utility from this link: https://docs.plesk.com/en-US/onyx/a...epair-utility/plesk-repair-utility-web.74654/ and it found nothing related to my issue.

I have no idea what else to check, and changing the shell to /bin/bash is not an option - besides the security risk we have customers with automated SSH connections that require the chroot for their file/folder pathways. My server support is stumped.

I would appreciate anyone's help!! Thank you.

  • What is output of ls -la /usr/local/psa/bin/chrootsh ? What is you OS name and version? – Oleg Neumyvakin Feb 23 '17 at 15:25
  • Thank you for your comment! The result is: -rwsr-x--- 1 root psacln 10536 Oct 28 00:52 /usr/local/psa/bin/chrootsh Cent OS 7, Plesk 17.0.17 – Ultra Graphics Feb 23 '17 at 15:35
  • Have you tried to switch shell to common bash and back to chrooted bash? If it doesn't help I think you can contact Plesk support directly, as i know it's free now. – Oleg Neumyvakin Feb 24 '17 at 14:49
  • Thanks for your comment. Previously, "cycling" the shell would fix the problem, but it didn't this time. I have tried getting Plesk support but they require a plesk license in their support form, and when I did that I get a message that they don't support plesk installations by a third party (in this case, my host Mediatemple) and that I need to contact them (which I have, multiple times - they're stumped). In the end, I had a linux guy I know completely reinstall it - I will add an answer to this question to reflect that. Thank you though! – Ultra Graphics Feb 27 '17 at 15:01

To solve my problem, essentially chroot was reinstalled. I had another guy who knows way more than me do it, but I did ask him to try to summarize what he did so it might help anyone else who has to do the same thing:

  1. Essentially, he took the executables that existed in the original CHROOT source directory & copied them to the CHROOT source directory I created when I ran the script from the Plesk docs above: https://support.plesk.com/hc/en-us/articles/213909545--HOWTO-How-to-add-new-programs-to-a-chrooted-shell-environment-template.

  2. Then, he cleaned up any remnants of the original CHROOT environment in each account (e.g. removed the bin, sbin, etc and so on directories under the hosting account (/var/www/vhosts/somedomain.com)

  3. Then, set shell to anything but the chroot option (in plesk -> subscription -> web hosting access & save. Then, set the shell to chroot option (/bin/bash(chrooted). This last item triggers commands to remove & add the chroot environment to the targeted directory.

I'm still in the process of doing step 2 and 3 for my remaining domains, but so far it has worked everytime. Hopefully that will help someone that has a similar issue.

| improve this answer | |
  • +1 for sharing your solution. Have you discovered what the cause was? – Kamil Maciorowski Mar 1 '17 at 15:37
  • Unfortunately no. Neither our server support, the guy that reinstalled chroot, nor myself ever found the actual cause of the issue. If I had to make a somewhat educated guess, I think an update might have accidentally removed a dependency with chroot. Since it was server wide and affected all domains, I have to think that it was something having to do with the chroot folder in /var/www/vhosts/chroot/, possibly a corrupted file? Then when I switched to /bin/bash/ and back to /bin/bash(chrooted), Plesk wasn't properly removing and restoring the relevant files and dependencies. – Ultra Graphics Mar 2 '17 at 16:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.