SFTP経由でファイルをアップロードするときにumaskが無視されるのはなぜですか?

SFTP経由でファイルをアップロードするときにumaskが無視されるのはなぜですか?

リモートシステムにアップロードされたファイルに対する権限に奇妙な問題があります。

ローカルでは、index2.htmlファイルはchmod 664です。

acoder@acoder-local ~ $ ll index2.html
-rw-rw-r-- 1 acoder acoder    29 May 17 14:46 index2.html

同じファイルをリモートシステムにアップロードすると、リモートディレクトリの権限が次のように表示されます。

-rw-r--r--. 1 acoder acoder 3657 May 17 14:43 index2.html

最初はリモートシステムにumaskが正しく設定されていないと思いました...

[acoder@remote public_html]$ umask
0002

比較のためにリモートシステムのファイルをタッチすると、指定されたumaskに対する正しい権限が表示されます。

-rw-rw-r--. 1 acoder acoder    0 May 17 14:44 index3.html

それでは、SFTP経由でアップロードされたファイルの権限はどのように設定されますか? SFTP経由でファイルを配置するときにumaskが無視されるのはなぜですか?

ベストアンサー1

SFTPはログインシェルをまったく通過しません。 SSHサーバーから直接管理されます。予想されるumaskが/etc/profileまたは他のシェル初期化ファイルによって設定されている場合、~/.profileSFTP~/.bashrcでは機能しません。

以下でumaskを設定できます。ポリアクリルアミド基準寸法pam_umask。 SSHサーバーの設定は、SSHシェルセッション(シェル初期化ファイルで上書きされない限り)およびSFTPセッションに適用されます。

Subsystem sftp/etc/sshd_configまた、次の-u行を編集して、SSH用に特別に設定されたumaskにオプションを渡すこともできます。sftp-server

おすすめ記事