SFTPで002のumaskを提供しようとしていますが、umaskが022のように動作し続けます。これを行うにはどうすればよいですか?
Red Hat 7.4
/etc/ssh/sshd_config には次の行があります。
Subsystem sftp internal-sftp -u 002
私も試しました
Subsystem sftp internal-sftp -u 0002
sshd_configを変更するたびに、次のコマンドを実行します。
sudo systemctl restart sshd.service
次に、別のウィンドウでsftpにログインします。
ファイルを sftp にアップロードすると、シェルセッションの "ls -Fla" が次を返します。
drwxrwsr-x. 2 [myID] [myGroup] 32 Dec 28 17:37 ./
drwxrwxr-x. 4 [siteID] [siteGroup] 50 Dec 26 18:44 ../
-rw-r--r--. 1 [myID] [myGroup] 9173334 Dec 28 17:37 [myUploadedFile]
(最後の行にはグループ権限として r-- があります)
私が期待した場所:
drwxrwsr-x. 2 [myID] [myGroup] 32 Dec 28 17:37 ./
drwxrwxr-x. 4 [siteID] [siteGroup] 50 Dec 26 18:44 ../
-rw-rw-r--. 1 [myID] [myGroup] 9173334 Dec 28 17:37 [myUploadedFile]
(最後の行にはグループ権限としてrw-があります)
私も試しました
Subsystem sftp internal-sftp -u ug=rwx
ただし、これによりsftpが接続を閉じます。少なくとも正しい構成ファイルを更新していることを確認してください。
答え1
umask
値のみを参照してください。減らす権限を与えて絶対に追加しないでください。
したがって、ローカルファイルに権限0644(-rw-r--r--)がある場合、umaskはグループ書き込みフラグを追加しません。 umaskは「その他の書き込み」を削除するため、ローカルファイルが0666の場合、リモートファイルは0664になります。
リモートファイルにグループ書き込みがあることを確認するには、この-m 664
フラグが必要な場合があります。
答え2
sshd設定ファイルで、グループに「ForceCommand」を設定してみてください。
Match Group {GROUP_NAME}
ForceCommand internal-sftp -u 0002
新しい設定を適用するには、sshdプロセスを再起動してください。
答え3
SFTPの使用パターンによっては、クライアントの動作を変更することが実行可能なアプローチである可能性があります。
「配置」したいファイルの権限を変更できる場合(またはすでに必要な場合)、-pパラメーターを一緒に使用できます。このパラメーターは、put
権限とファイルの変更時間をコピーします(scp
と共に使用することもできます)。 。ローカルファイルに必要な権限があると仮定すると、次のことが機能します。
put -p <filename>
または、ファイルを受信した場合はlumask
ローカル権限を設定できます。