Como limitar privilégios administrativos a vários arquivos de configuração?

0

Eu quero que um administrador seja capaz de editar o arquivo / etc / fstab, mas um administrador não possa editar o arquivo fstab.

Ambos os administradores precisam acessar todas as outras tarefas administrativas.

Isso é possível?

Eu estou supondo que eu precisaria de alguma forma configurar o que os arquivos "sudo" lhes dá acesso. Ou possível apenas criar contas não administrativas e criar um grupo chamado fstab-access e adicionar um dos usuários a ele e configurar privilégios para esse grupo ...? Estou no caminho certo?

    
por Joshua Robison 01.05.2013 / 01:54

3 respostas

1

Se você quiser permitir que um usuário edite apenas /etc/fstab , poderá fazer isso de várias maneiras:

  • Verifique se as listas de controle de acesso estão ativadas ( acl na entrada /etc/fstab para / ) e setfacl -m user:joe:rw /etc/fstab .
  • Adicione uma regra sudoers : execute visudo e adicione uma linha joe ALL = sudoedit /etc/fstab

Eu recomendo o método sudo porque facilita a auditoria de quem pode fazer o quê.

No entanto, se você permitir que um usuário edite /etc/fstab , eles poderão indiretamente ganhar root adicionando uma entrada que permita montar um sistema de arquivos externo ou loop no qual eles plantaram um binário de raiz setuid.

É bastante estranho permitir que um usuário edite somente fstab . Se você quiser permitir que os usuários montem dispositivos removíveis, use pmount (ou confie em ambientes de área de trabalho). / p>

Se você permitir que um usuário execute comandos não permitidos como raiz ("todas as outras tarefas administrativas"), não poderá impedi-los de editar nenhum arquivo específico. Em algum momento, você precisa decidir se confia ou não nessas pessoas. Se você não confia neles para administrar sua máquina, não lhes dê privilégios (faça-os usar outra máquina, talvez uma máquina virtual). Se você confiar neles, deixe-os se tornar root e diga que certos arquivos estão fora dos limites.

    
por 02.05.2013 / 03:10
2

Se você der a eles acesso a tudo, obviamente todas as apostas serão canceladas. No entanto, você pode permitir que um usuário edite um arquivo específico e nada mais. Por exemplo:

user ALL = sudoedit /etc/fstab

Permitiria ao usuário editar apenas o / etc / fstab.

    
por 01.05.2013 / 20:23
1

Se você tentar enumerar todos os utilitários que um administrador pode precisar usar, você estará sentado no teclado por algum tempo.

Tecnicamente, esse tipo de desejo é por que os recursos do Linux foram desenvolvidos. Para fazer o que você está querendo: você poderia dar aos usuários recursos específicos e então dar acesso de gravação ao user1 para fstab (via ACL ou algo assim) e simplesmente não dar esse mesmo privilégio de gravação ao usuário restrito2 (certificando-se de que user2 didn ' t tem CAP_CHOWN ou CAP_DAC_OVERRIDE), mas dado o estado atual dos recursos (em termos de quão bem desenvolvido o espaço do usuário é), é provavelmente mais trabalho do que vale a pena.

Sem usar os recursos para transferir responsabilidades para um cenário "raiz como função do usuário", você só tem várias permutações do uso da conta raiz para fazer as coisas. Isso nos leva ao problema acima mencionado de dizer ao sistema toda e qualquer ferramenta possível que o outro usuário precisa (esperançosamente um que não pode ser usado indiretamente para manipular fstab ).

Provavelmente, é melhor você decidir se pode confiar em um determinado usuário para ser um administrador ou não.

    
por 01.05.2013 / 02:24