setgid sticky bit não está funcionando

3

Eu tenho outro problema frustrante. Eu tenho um grupo de usuários pertencentes ao grupo "testing". Eu tenho uma pasta localizada em / var / log / projects com o conjunto de bits setgid. Assim, todos os novos arquivos ou pastas que forem criados em / projects sempre reterão a propriedade do grupo de "teste".

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

Quando eu toco em um arquivo ou cria uma pasta nesse diretório, eles herdam a perms e a propriedade corretas.

[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

E quando eu crio uma nova pasta, funciona como esperado.

[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

Até aí tudo bem. No entanto, estou usando esta pasta para syslogs remotos de outros sistemas. Quando inicio o serviço rsyslogd, quaisquer pastas de arquivos criados por esse processo herdam a propriedade de root: root.

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

Fiquei com a impressão de que o objetivo do bit setgid era para o meu caso de uso. Alguém pode me dizer o que estou fazendo errado ou como eu posso consertar isso para que quaisquer pastas / arquivos criados pelo processo rsyslogd tenham a propriedade do grupo de "teste"? Isso está em um servidor RHEL 6.

    
por user53029 11.06.2016 / 03:03

2 respostas

2

Como o rsyslog ignora os bits fixos do setgid, consegui corrigir o problema usando as seguintes diretivas em minha configuração de modelo customizado 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

NOTA $ DirCreateMode e $ FileCreateMode não funcionarão até que você substitua a umask padrão pela diretiva $ umask 0000.

    
por 11.06.2016 / 05:01
4

O método que você fez funcionaria com programas que não gerenciam especificamente suas permissões de saída e propriedade, mas o rsyslogd faz isso.

página de documentação do módulo de saída Rsyslogd mostra que você pode use a diretiva de configuração fileGroup [groupName] para definir o valor padrão para o grupo do arquivo de saída.

    
por 11.06.2016 / 04:26