Deixe a raiz ler todos os arquivos no diretório NFS, mesmo que o servidor tenha root_squash ativado

2

Eu tenho um diretório NFS que é usado por vários usuários e hospedado em um servidor NFS que eu não controle.

Eu gostaria de fazer o backup do conteúdo do diretório NFS da minha máquina cliente. Minha primeira tentativa foi logar como root na minha máquina cliente, e então tentar distribuir todos os arquivos. No entanto, isso falha com o erro de permissão, pois o servidor NFS mapeia a raiz para um usuário anônimo (as opções root_squash no servidor), portanto, alguns arquivos não são legíveis.

Então, como posso fazer backup de todos os arquivos nesse diretório NFS? Em outras palavras, como posso organizar a capacidade de ler todos os arquivos nesse diretório NFS compartilhado? Eu não controlo o servidor NFS e não consigo configurá-lo para usar no_root_squash.

Agora, sei que essa restrição de segurança pode ser ignorada. Se eu quisesse criar um novo usuário na minha máquina cliente com o uid certo, eu poderia su para esse usuário e depois ler esses arquivos. Desde que eu tenho raiz na minha máquina cliente, eu poderia facilmente fazer isso - o servidor NFS está confiando na minha máquina cliente. Isso seria chato e desajeitado, já que eu teria que criar vários userids falsos em minha máquina cliente e ir e voltar entre eles, mas isso prova que é possível, em princípio, que o root leia todos os arquivos no diretório NFS. / p>

Minha pergunta é: existe uma maneira mais limpa e mais fácil de organizar, para que eu possa fazer backup de tudo neste diretório NFS, já que tenho raiz na máquina cliente, mas não tenho controle sobre o servidor NFS ou sua configuração?

Restrições: não consigo mudar para outro servidor NFS. Eu não controlo a configuração do servidor NFS atual. Qualquer solução que exija que todos os usuários façam alterações na configuração ou exijam um esforço extra de todos os outros usuários é impraticável. Eu estou procurando uma solução que não exija muito esforço de minha parte (ter que escrever um monte de scripts complexos para encontrar todos os usuários relevantes, criar uids falsos, cada um, criando um monte de tarballs, e de alguma forma mesclar os tarballs parece doloroso).

    
por D.W. 20.02.2015 / 00:16

1 resposta

1

Você pode exigir que todos os usuários definam permissões padrão para outros = ler (arquivos) e outros = ler + executar (diretórios), para que sua conta "raiz" possa lê-los.

Você pode alterar os provedores de servidor NFS para algum lugar que permita no_root_squash .

Você pode criar o conjunto de userids "falsos" na sua máquina cliente e, em seguida, iterá-los, executando algo como find /mnt/NFS -user "$FAKE_USERID" ... | tar --no-recursion --files-from=- para cada conta. Isso geraria vários tarballs, mas você evitaria a sobreposição de backups (o find particiona os arquivos pelo proprietário, portanto, cada arquivo apareceria apenas no tarball do usuário que possuía o arquivo).

    
por 20.02.2015 / 00:27