Quero que um administrador possa editar o arquivo /etc/fstab, mas um administrador não consiga editar o arquivo fstab.
Ambos os administradores precisam de acesso a todas as outras tarefas administrativas.
Isso é possível?
Presumo que precisaria configurar de alguma forma quais arquivos "sudo" lhes dão acesso. Ou é possível apenas criar contas não administrativas e, em seguida, 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?
Responder1
Se você lhes der 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 /etc/fstab.
Responder2
Se você quiser apenas permitir que um usuário edite /etc/fstab
, poderá fazer isso de várias maneiras:
- Certifique-se de que as listas de controle de acesso estejam habilitadas (
acl
opção na/etc/fstab
entrada para/
) esetfacl -m user:joe:rw /etc/fstab
. - Adicione uma
sudoers
regra: executevisudo
e adicione uma linhajoe 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
, ele poderá obter root indiretamente adicionando uma entrada que permite montar um sistema de arquivos externo ou em loop no qual ele plantou um binário root setuid.
É bastante estranho permitir que um usuário fstab
apenas edite. Se você quiser permitir que os usuários montem dispositivos removíveis, usepmount
(ou confie em ambientes de desktop).
Se você permitir que um usuário execute comandos não incluídos na lista de permissões como root (“todas as outras tarefas administrativas”), não será possível impedi-lo de editar qualquer arquivo específico. Em algum momento, você precisará decidir se confia ou não nessas pessoas. Se você não confia neles para administrar sua máquina, não conceda privilégios a eles (faça com que usem outra máquina, talvez uma máquina virtual). Se você confia neles, deixe-os se tornarem root e diga-lhes que certos arquivos estão fora dos limites.
Responder3
Se você tentar enumerar todos os utilitários que um administrador pode precisar usar, você ficará sentado diante do teclado por um tempo.
Tecnicamente, esse tipo de desejo é o motivoCapacidades do LinuxForam desenvolvidos. Para fazer o que você deseja: você pode fornecer aos usuários recursos específicos e, em seguida, apenas conceder acesso de gravação ao usuário1 fstab
(via ACL ou algo assim) e simplesmente não conceder o mesmo privilégio de gravação ao usuário2 restrito (certificando-se de que o usuário2 não tenha 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 dá mais trabalho do que vale a pena.
Sem usar recursos para transferir responsabilidades para um cenário de "função root como usuário", você apenas tem várias permutações de uso da conta root para fazer as coisas. Isso nos leva ao problema mencionado acima de informar ao sistema toda e qualquer ferramenta possível que o outro usuário precise (esperançosamente, uma que não possa ser usada indiretamente para manipular fstab
).
Provavelmente é melhor você apenas decidir se pode confiar em um determinado usuário como administrador ou não.