web-dev-qa-db-ja.com

SFTP-サーバーがアップロードしたファイルの権限が間違っています

私はファイルの権利の何が問題なのかを解明しようとしてきました。 FileZillaを使用してファイルをアップロードすると、すべてのファイルに-rw-r--r--の権限が付与されます。私は彼らに-rwxr-xr-xを持たせたいと思います。 umaskを使用して権利を修正しようとしましたが、問題があります。たとえば、次のようにumaskを使用して権限を変更できることを読みました。

/ etc/ssh/sshd_configで、以下を変更します。

Subsystem sftp /usr/lib/openssh/sftp-server -u 002

この変更により、-rw-rw-r--のファイルを取得しています。私の知る限り、0はすべての権利を与えるべきですか?しかし、私はrwのみを取得しています。

どうしましたか?私はDebianを使用しています。

4
Firze

SFTPクライアントがアップロードされたファイルのアクセス許可を指定しない場合、OpenSSH SFTPサーバーは新しく作成されたファイルに0666のアクセス許可を割り当てます(umask 0002が0664になります)。

これはハードコーディングされており、変更することはできません。 OpenSSHの_sftp-server.c_のprocess_open()関数を参照してください。また、これが明示的に指定されていない場合でも、0666はファイルの* nixのデフォルトであり、umaskでこれを変更することはできません(OpenSSHだけでなく、一般的に当てはまります)。

参照 OpenSSH SFTPサーバーはumaskを使用しますか、それともputコマンドの後にクライアント側のアクセス許可を保持しますか(chrootされた環境)?

umaskが実際には間違っていることに注意してください。 0644が必要な場合は、0002ではなくumask 0022を使用してください。

FileZillaは、アップロードされたファイルのアクセス許可を指定することはありません。あなたが経験している行動につながるもの。


必要な権限を取得するには:

  • FileZillaを使用すると、アップロード後に、リモートファイルコンテキストメニューからファイルパーミッションコマンドを使用して、ファイルパーミッションを手動でのみ変更できます。

    Changing permissions in FileZilla

  • アップロードされたファイルのアクセス許可を指定できるSFTPクライアントを使用します。

    たとえば、WinSCPはそれを可能にします。

    https://winscp.net/eng/docs/ui_transfer_custom を参照してください

    Setting permissions for uploaded files in WinSCP

    (私はWinSCPの作者です)

10
Martin Prikryl