
SFTPを介してLinuxサーバーからAWS EC2のRed Hat 8サーバーにファイルを転送できるようにしたいです。
というユーザーを作成しsftpuser
ました。SFTPを介してこのユーザーに送信されたすべてのファイルにログインする必要があります/testdata/sftp/incoming/
。
/testdata
rootをandの所有者として作成した場合にのみ機能させることができましたが、他のLinuxユーザーが所有する必要があり、/testdata/sftp
グループ/testdata
/その他の権限を付与するとSFTPは機能しません。
Match User sftpuser
ChrootDirectory /testdata/sftp/incoming
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
着信フォルダにsftpファイルを転送することは可能ですが、他のユーザーがそのファイルを所有できるようにすることはできますか/testdata
?
ありがとう
答え1
/testdata
なぜ他のユーザーにディレクトリを所有させようとするのですか? 〜のようにSFTP internal-sftp
ChrootDirectoryを使用するには、指定されたすべてのパスが次のものである必要があります。根ユーザー専用。
良い方法は、sftpuser
ユーザー設定を変更することです。たとえば、次のようになります。
Match User sftpuser
ChrootDirectory /testdata/sftp/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
incoming
ディレクトリを削除しました。;その後、構成を再ロードします。
sudo systemctl reload sshd.service
### sudo service ssh reload ## use this command if not a systemd
これで、incoming
特定のsftpuser
ユーザー/グループ権限を使用して個別にディレクトリを作成します。たとえば、次のようになります。
sudo mkdir /testdata/sftp/incoming
sudo chown sftpuser /testdata/sftp/incoming
sudo chmod 755 /testdata/sftp/incoming
これで、パスにsftpuser
読み取り/書き込みアクセス権があります。/testdata/sftp/incoming/