Ubuntu12.04のchroot環境で問題が発生しています。
目的
新しい「sftp」グループの一部のユーザーが同じディレクトリにsftpおよびftpできるFTP/SFTPサーバーを設定します
ProFTPセットアップ
ProFTPセットアップはUbuntuの基本ビルドであり、期待どおりに機能します。ユーザー「test1」は、tcp 21でftp経由でサーバーにログインでき、自分のディレクトリ/ home/test1/ftprootにchrootされます。
/etc/proftpd/proftpd.confにあります
# Use this to jail all users in their homes
DefaultRoot ~/ftproot
ユーザーtest1がftp経由でログインすると、/のみが表示されます(これが私が望むものです)。
ただし、同じユーザーがsftp経由でログインし、sshd_configを使用して適切にchrootされた場合、/ home/test1ディレクトリはrootが所有する必要があるため、ユーザーはsftp経由でログインして次のように表示されます。
/
/ftproot
/.bashrc
これが意味するのは、ユーザーが同じ/ ftprootディレクトリにたどり着かないということです。 test1は、デフォルトで/ home/test1ホームディレクトリに配置されます。このディレクトリは、実際にはrootが所有しています。 したがって、ディレクトリを/ ftprootに変更するまで、sftp経由で何も書き込むことはできません。
デフォルトで彼が同じディレクトリにいるようにsftpサーバーをセットアップするにはどうすればよいですか?
これが私のsshd_config関連の設定です:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp -f AUTH -1 VERBOSE
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
#AllowTcpForwarding No
ChrootDirectory%h/ftprootが機能しません。
これで、proftpd
には mod_sftp
モジュール、(OpenSSHではなく)SFTPのニーズにそれを使用すると、この問題にうまく対処できる可能性があります。
ユーザー「test1」がSSHで到達するフォルダーを変更する必要があります。この質問への答えを見てください: https://stackoverflow.com/questions/3530433/PuTTY-change-default-ssh-login-directory ;
追加 cd subdir/subdir
から〜/ .bashrcまたは〜/ .bash_profile、または
ユーザーのホームディレクトリを変更します。
ユーザーのホームディレクトリを変更するには:usermod -d /path/to/dir/ username