Como posso criar um usuário com acesso somente leitura a todos os arquivos? (ou seja, root sem permissões de escrita)

9

Para fazer o backup do meu servidor, eu gostaria de acessá-lo remotamente via SSH. Para minimizar todos os riscos, ele deseja usar um usuário que tenha acesso de leitura, mas a todos os arquivos, assim como o root. No entanto, ele não deve ter direitos de gravação.

Alguma idéia de como conseguir isso?

    
por Mononofu 29.11.2009 / 21:49

3 respostas

7

Poderia sugerir outro método para resolver seu problema que consome menos manutenção.

Você pode criar chaves ssh com acesso limitado a programas específicos. Eu não gosto de conceder acesso irrestrito ao root, mas às vezes você precisa habilitar certos comandos para serem executados via remote. Com as chaves ssh, você pode executar seu programa de backup via comando ssh.

Confira a seção 'AUTHORIZED_KEYS FILE FORMAT' em sua página man do sshd (suponho que você esteja usando o OpenSSH).

link

    
por 01.12.2009 / 01:38
1

Você pode conseguir isso com as ACLs. Você ainda precisa de um script em execução como root que altere as permissões de cada arquivo. Veja as man pages para ACL, setfacl e getfacl se você estiver interessado.

    
por 29.11.2009 / 22:10
1

Existe uma outra maneira de criar isso sem usar as ACLs. Mas você precisa praticar a cautela aqui. Em primeiro lugar, crie um grupo, por exemplo, chamado roroot (readonly root). Em seguida, aplique esse id de grupo a todos os diretórios. Faça as permissões para os bits do grupo serem r - ou 400 octal, então você pode criar uma conta de usuário como um usuário comum, por exemplo, rorootusr, com o próximo id definido como o que estiver em seu sistema, torná-lo um membro de um grupo roroot somente , não faz parte de roda, bin, etc, dependendo do que seus grupos estão em sua instalação. O próximo bit será kludgy. Abra o arquivo / etc / passwd usando vim / nano / emacs / joe / qualquer editor que balance seu barco, e procure o id que você acabou de criar, ie. rorootusr, o arquivo passwd será parecido com este

root:x:0:0::/root:/bin/sh

Lendo da esquerda para a direita separados por dois-pontos você tem nome de usuário, senha (criptografada + sombreada), identificação de usuário, id de grupo, comentário, diretório pessoal e shell. Do exemplo acima dado

rorootusr:x:512:450:Root User RO:/home/rorootusr:/bin/bash

É o 3º campo (512) que você muda para 0. 450 seria o id do grupo para o roroot. Salve a sessão de edição e pronto. Agora, o rorootusr terá acesso root, mas é apenas um membro do grupo roroot e só tem acesso ao sistema.

Espero que isso ajude, Cumprimentos, Tom.

    
por 30.11.2009 / 02:34