SFTPが私のumask設定を尊重するようにする方法

SFTPが私のumask設定を尊重するようにする方法

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ローカル権限を設定できます。

関連情報