この質問はすでに議論されていることは知っていますが、投稿を読んでも答えを理解できませんでした。
すべての前に正確に:
- RHEL 6.2でOpenSSH 5.9を使用しています
internal-sftp
サブシステムを使用して-u 0002
、umask用にchrootされたSFTPサーバーを構成しました。- 私は正確に、
-p
または-P
オプションを使用しません
私が一方で読んだものから:SFTP転送のためにumaskを定義する多くの方法があります:
- オプション
-u
のinternal-sftp
(またはsftp-server
OpenSSHの5.4以降)、 - ラッパーを作成します
sftp-server
(ここで明示的にumaskを設定します-これはchrooted環境に適合しません) pam.d/sshd
ファイルに特定の構成を追加する
一方、私は読んだ:
OpenSSH SFTPクライアントとサーバーは、アクセス許可を(拡張機能として)転送し、ローカル側のアクセス許可でリモートファイルを作成します。AFAICT、この動作を無効にする方法はありません。
そこで、次のテストを行いました。
クライアントで、アクセス許可600および700のファイルMYFILE
とディレクトリを作成しましたMYDIR
。
それからsftp
コマンドを使って:
mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)
私はのパーミッション変更した場合MYFILE
やMYDIR
、クライアント側では、再度アップロードし、私は、サーバー側で新しい権限を取得します。
私もpam.d
解決策を試しましたが、何も変わりませんでした。
だから今私は混乱しています:
私がテストしたものと読んだものの一部から、OpenSSHは常に許可を保持していると言えます。しかし、umaskを定義できると言っている多くの投稿があるので、テスト構成で間違ったことをしていると想像できます。
経験豊富なフィードバックをお願いします。
ありがとうございました。