リモートシステムにアップロードされたファイルに対する権限に奇妙な問題があります。
ローカルでは、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
または他のシェル初期化ファイルによって設定されている場合、~/.profile
SFTP~/.bashrc
では機能しません。
以下でumaskを設定できます。ポリアクリルアミド基準寸法pam_umask
。 SSHサーバーの設定は、SSHシェルセッション(シェル初期化ファイルで上書きされない限り)およびSFTPセッションに適用されます。
Subsystem sftp
/etc/sshd_config
また、次の-u
行を編集して、SSH用に特別に設定されたumaskにオプションを渡すこともできます。sftp-server
。