1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
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} ){
|