SFTPサーバー(openssh/sftp-server)があり、このサービスを使用するユーザーにumask 002を設定したい。ユーザーごとにPAM(pam.d/common-session)と.profileを設定しようとしましたが、うまくいきませんでした。
SSHログインではすべて問題ありませんが、SFTP(gFTPで)を試すと、022 umaskが設定されています。
私はすでに、sftp-serverを呼び出す前にumaskを変更するsftp-serverのラッパーを使用しようとしましたが、うまくいきません。
何か助けは?どうもありがとう!
何時間もかけてさまざまなハックや修正を試みた結果、適切な解決策が見つかりました!
SFTPに必要なumaskを選択できるようにするSSHのパッチがあります。ここからダウンロードできます: http://sftpfilecontrol.sourceforge.net/
私(OpenSSH_5.2p1 + sftpfilecontrol-v1.3、OpenSSL 0.9.8g 2007年10月19日)の場合、完全に機能しています。
OpenSSH 5.4p1以降、「-u」オプションを使用できると思います。次に例を示します。
Subsystem sftp /usr/lib/openssh/sftp-server -u 022
Manページから:
-u umask
Sets an explicit umask(2) to be applied to newly-created files
and directories, instead of the user's default mask.
これが他の誰かのフラストレーションの時間を節約できることを願っています...
GUI SFTPアプリケーションを使用している場合は、アップロードの権限を設定するための設定を確認してください。
私は上記のすべてのソリューションを試しましたが、アプリケーションがそれらをオーバーライドしていることがわかりました。
Ssh構成ファイルでは、これを使用してファイルのモードを具体的に設定することもできます(クライアントが設定しようとするchmodをオーバーライドします)。ここではinternal-sftpを使用していますが、sftp-serverでも同じだと思います。
ForceCommand internal-sftp -u 0022
引用するには このメッセージ :
/etc/init.d/sshに「umask 007」行を追加することで、これは問題なく動作しました。
Bashは.profile
をインタラクティブログインシェルに使用します。 sftp
は1とは見なされません。上記のヒントが機能しない場合、またはより細かい制御が必要な場合は、/etc/bash.bashrc
または~/.bashrc
でumaskを設定できる場合があります。
特定のopensshバージョンやカスタムパッチを必要としない簡単な解決策を見つけるには、 この質問 を参照してください。