sudo ou acl ou setuid / setgid?

5

por uma razão que eu realmente não entendo, todo mundo quer sudo para tudo e todos. No trabalho, temos até tantas entradas quanto a maneira de ler um arquivo de registro (cabeça / cauda / gato / mais, ...).

Eu acho que o sudo está derrotando aqui.

Eu prefiro usar uma mistura de diretórios setgid / setuid e adicionar ACL aqui e ali, mas eu realmente preciso saber quais são as melhores práticas antes de iniciar.

Nossos servidores possuem% admin,% produção,% dba,% usuários, ou seja, muitos grupos e muitos usuários. Cada serviço (mysql, apache, ...) tem seu próprio caminho para instalar privilégios, mas os membros do grupo de produção% devem poder consultar o arquivo de configuração ou até os arquivos de log. Ainda há a solução para adicioná-los aos grupos certos (mysql ...) e definir a boa permissão. Mas eu não quero usermod todos os usuários, eu não quero modificar permissões de padrões, uma vez que poderia mudar após cada atualização.

Por outro lado, configurar acls e / ou mixar setuid / setgid em diretórios é algo que eu poderia facilmente fazer sem "desfigurar" a distribuição padrão.

O que você acha disso?

Tomando o exemplo mysql, seria assim:

setfacl d:g:production:rx,d:other::---,g:production:rx,other::--- /var/log/mysql /etc/mysql

Você acha que isso é uma boa prática ou devo definitivamente usar o user -G mysql e jogar com o sistema de permissões padrão?

Obrigado

    
por Xavier Maillard 01.06.2010 / 22:09

3 respostas

5

Práticas recomendadas: mantenha o arquivo sudoers e use o sudo.

Na minha máquina pessoal, prefiro setuid / gid, mas sou o único no meu computador; e eu não faço isso para qualquer coisa descaradamente perigoso como rm .

    
por 01.06.2010 / 22:20
5

As práticas recomendadas (e mais comuns) tendem a usar sudo . O Sudo oferece um controle refinado, e a configuração pode lidar com várias máquinas de uma só vez.

O uso de ACLs pode complementar isso - sudo manipula as operações como raiz; As ACLs dão e tiram direitos a diretórios e arquivos para usuários e grupos. Eu não contaria com setgid e setuid para fazer qualquer coisa razoável.

Eu também implementaria o grupo wheel; isso ajudará a aumentar a segurança. Verifique se o seu programa su suporta o grupo wheel.

Mais uma coisa: se você tiver view ou less como uma maneira de ler um arquivo de registro, estará correndo risco: ambos os programas oferecem acesso ao shell.

    
por 01.06.2010 / 23:55
0

Parece-me que a opção sudoers é um pouco mais compacta que o setuid / setguid / ACL.

Sem agrupar usuários, seu ACLS será muito longo. E se você fizer usuários do grupo, estará de volta ao mesmo lugar em que começou.

O maior problema é que, sem algum tipo de gerenciamento central, o controle de acesso se espalha por todo o sistema de arquivos. É claro que você pode contornar isso com macros, modelos, gerenciamento de configuração e assim por diante. Mas essa é outra camada que não reduz a complexidade.

Na minha pequena loja Drupal eu uso ACLs extensivamente para todos os arquivos de trabalho, mas sudo para todo o acesso de gerenciamento. A camada de gerenciamento de configuração que estou usando é Ansible e o bom disso é que posso facilmente modelar usuários, suas funções e, portanto, quais grupos eles obtêm, em quais máquinas e assim por diante. Sudoers é gerenciado de forma semelhante. Isso parece uma prática muito boa para mim porque é mais transparente.

Claro, provavelmente não tenho tantos usuários ou grupos quanto você. Eu poderia imaginar colocar ACLs no gerenciamento de configuração também. Mas para a vida de mim, não vejo uma maneira direta de gerenciar muitas máquinas, muitos usuários e muitos grupos dessa maneira.

    
por 05.12.2012 / 11:15