web-dev-qa-db-ja.com

Ubuntu 12.04の同じディレクトリにFTPとSFTPにProFTPとSSHD_configを設定するにはどうすればよいですか?

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が機能しません。

1
Mike J

これで、proftpdには mod_sftp モジュール、(OpenSSHではなく)SFTPのニーズにそれを使用すると、この問題にうまく対処できる可能性があります。

1
Castaglia

ユーザー「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

0
user16081-JoeT