ホームフォルダをルートフォルダとして扱うには?

ホームフォルダをルートフォルダとして扱うには?

私が作成した各ユーザーには独自のホームディレクトリがあり、これは通常の現象です。

現在、次のようにユーザーを作成します。

adduser -d / home / ftp / myUser myUser

私のユーザーはSFTP(私のvpsにインストールされているSSHを開く)に接続する必要があり、私のユーザーがSFTPに接続するときにホームディレクトリをルートフォルダとして確認する必要があります。

なぜ?他のアプリケーションはこのSFTPに接続しており、そのアプリケーションはルートディレクトリにあるファイルを考慮しないとファイルを送信または読み取ることはできません。

どうすればいいですか?

ベストアンサー1

/etc/ssh/sshd_config次の行を含めるように追加または変更します。

Subsystem sftp internal-sftp

Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp

次に、制限されたユーザーセットをすべてこのsftpusersグループに追加します。

最後に、ターゲットディレクトリの所有権をrootに変更し、グループ/その他の書き込み権限を削除してサーバーを再起動しますssh。これはchrootが適用されるために必要です。欠点は、ユーザーが自分のホームディレクトリにファイルを書き込めないことです。 (彼らが書くことができるサブディレクトリを作成する必要があります。)

これはユーザーの観点からは理想的な状況ではなく、SFTPが使用するディレクトリをファイルシステムの他の場所に作成する方が良いかもしれません(/home/sftp/$USERたとえば、実際のホームディレクトリとは無関係にロックできます)ChrootDirectory /home/sftp/%u

問題が発生した場合(いくつかのトラブルシューティング試行の最初の試みに成功する可能性がある)、/var/log/auth.log何が間違っているのかを知るためにこの本を読んでください。

おすすめ記事