Description: Allow chrooting into subfolders of the user's $HOME
Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
--- a/lib/Net/SFTP/SftpServer.pm
+++ b/lib/Net/SFTP/SftpServer.pm
@@ -401,7 +401,13 @@
   if (defined $arg{file_perms}){ $self->{file_perms} = $arg{file_perms} };
   if (defined $arg{dir_perms} ){ $self->{dir_perms}  = $arg{dir_perms}  };
 
-  $self->{home_dir} = "$self->{home}/$USER";
+  # if the given home already includes the user's home directory path, allow chroot'ing to a subfolder
+  # of the user's home directory
+  if ( $self->{home} =~ m/^$ENV{HOME}\/.*/ ) {
+    $self->{home_dir} = $self->{home};
+  } else {
+    $self->{home_dir} = "$self->{home}/$USER";
+  }
   $self->{FS} = Net::SFTP::SftpServer::FS->new();
   $self->{FS}->setChrootDir( $self->{home_dir} );
   unless ( -d $self->{home_dir} ){
