Preciso criar uma espécie de conta "operador de backup", que possa ler todos os arquivos em um sistema para copiar para um sistema de backup sem permissão para modificar nenhum deles, inclusive aqueles que pertencem ao root
.
A root
conta parece ser a única capaz de fazer isso, mas a root
conta não é impedida de executar o que quiser. A outra opção que posso pensar é colocar uma conta em um grupo que tenha direitos de leitura e tornar essa conta um membro de cada grupo de usuários. As rwx
permissões básicas no Linux não parecem criadas para isso.
O Linux tem algo mais sofisticado para esse propósito, como algo que as ACLs podem oferecer?
As permissões são para um usuário que efetua login de um servidor de backup remoto e faz backup de todos os arquivos para o servidor remoto. Se o servidor de backup for comprometido, essa conta não poderá fazer login no servidor do qual está sendo feito o backup e causar algum dano. As contas no servidor de backup também não devem poder fazer login no servidor de backup e causar algum dano se forem comprometidas.
Suponho que normalmente, basta executar o utilitário de backup como root, por
cron
meio de um comando forçado em uma chave SSH e, em seguida, confiar no utilitário para não fazer nada perigoso.Usar ACLs para dar permissões a todos os arquivos no sistema seria um pouco estranho, pois você precisaria ter as ACLs definidas para cada arquivo individualmente (já que as ACLs POSIX não têm o conceito de dar acesso a uma subárvore , você só tem ACLs padrão que são copiadas automaticamente para novos arquivos). E os proprietários desses arquivos podem simplesmente remover essas permissões, acidentalmente ou de propósito. Programas preocupados com a segurança (como SSH ou GPG) também podem ficar um pouco irritados se perceberem que seus arquivos podem ser lidos por outra pessoa. (Eles nem precisam saber sobre ACLs para fazer isso, pois os bits de permissão tradicionais mascaram as permissões concedidas pelas ACLs, portanto, qualquer acesso concedido pelas ACLs é evidente nos bits de permissão tradicionais.)
No entanto, existe realmente um caminho. O sistema de recursos do Linux contém um recurso apenas para isso:
(Não tenho certeza de como esse último está relacionado aos outros, mas vou ignorá-lo...)
Se você tiver um utilitário específico que deseja ter esse recurso, poderá fornecê-lo com
setcap
:Embora agora, qualquer pessoa que possa executar o binário
/path/to/backupcmd
terá acesso a essa capacidade. Portanto, você provavelmente deseja proteger esse arquivo específico do acesso de usuários arbitrários. Por exemplo, torne-o de propriedade deroot:backup
, com permissionsrwx--x---
, ondebackup
é o grupo de usuários que devem poder executá-lo.Você está procurando por sudo
sudo é um programa para sistemas operacionais de computador do tipo Unix que permite aos usuários executar programas com os privilégios de segurança de outro usuário