setgid スティッキー ビットが機能しない

setgid スティッキー ビットが機能しない

もう一つ、イライラする問題があります。私のグループには「testing」グループに属するユーザー グループがあります。/var/log/projects に、setgid ビットが設定されたフォルダーがあります。これにより、/projects に作成される新しいファイルやフォルダーは常に「testing」のグループ所有権を保持します。

[root@system log]# ll | grep projects
drwxr-s---. 4 root   testing     4096 Jun 10 19:36 projects

そのディレクトリ内のファイルを変更したり、フォルダを作成したりすると、正しい権限と所有権が継承されます。

[root@system log]# touch /var/log/projects/testfile
[root@system log]# ll /var/log/projects/
total 4
-rw-r--r--. 1 root testing    0 Jun 10 19:49 testfile

新しいフォルダーを作成すると、期待どおりに動作します。

[root@system projects]# mkdir folder1
[root@system projects]# ll
total 8
drwxr-sr-x. 2 root testing 4096 Jun 10 19:52 folder1
-rw-r--r--. 1 root testing    0 Jun 10 19:49 testfile

ここまでは順調です。ただし、このフォルダーは他のシステムからのリモート syslog に使用しています。rsyslogd サービスを開始すると、そのプロセスによって作成されたファイルのフォルダーはすべて、root:root の所有権を継承します。

drwx--S---. 2 root root 4096 Jun 10 19:44 remotehost

私は、setgid ビットの目的は私の使用例のためだと考えていました。私が何を間違っているのか、または rsyslogd プロセスによって作成されたすべてのフォルダー/ファイルに「testing」のグループ所有権が付与されるようにこれを修正する方法を教えていただけますか? これは RHEL 6 サーバー上にあります。

答え1

あなたが作成した方法は、出力権限と所有権を特に管理しないプログラムでは機能しますが、rsyslogd はそれを行います。

Rsyslogdの出力モジュールのドキュメントページfileGroup [groupName]設定ディレクティブを使用して、出力ファイルのグループのデフォルト値を設定できることを示しています。

答え2

rsyslog は setgid スティッキー ビットを無視するため、rsyslogd.conf カスタム テンプレート設定で次のディレクティブを使用することで問題を修正できました。

$template TmplAuth, "/var/log/projects/%FROMHOST-IP%/%PROGRAMNAME%.log"
$template TmplMsg, "/var/log/projects/%FROMHOST-IP%/%PROGRAMNAME%.log"
$umask 0000
$DirCreateMode 0750
$FileCreateMode 0640
$FileGroup testing
$DirGroup testing
authpriv.*   ?TmplAuth
*.info,mail.none,authpriv.none,cron.none   ?TmplMsg

注意: $DirCreateMode と $FileCreateMode は、デフォルトの umask を $umask 0000 ディレクティブで上書きするまで機能しません。

関連情報