Eu quero ter um usuário que tenha acesso a todos os arquivos e pastas do sistema. Isso tem como objetivo usar o RSYNC em uma máquina local para fazer backup de uma máquina remota.
No momento estamos usando o usuário backups
e embora tenhamos adicionado este usuário para os grupos sudo
e admin
rsync ainda retorna mensagens como:
rsync: opendir "/ location / to / folder" falhou: permissão negada (13)
rsync: send_files falhou ao abrir "/ location / to / file": permissão negada (13)
Alguma idéia de como damos backups
permissão ao usuário para acessar tudo (exceto adicionar o usuário a todos os grupos de todos os tempos - o servidor remoto que estamos tentando fazer backup é um servidor de hospedagem dedicado, onde cada conta tem seu próprio usuário no sistema).
Obrigado por qualquer ajuda.
fonte
/proc
,/dev
etc, erros são esperados.backups
parasudo
eadmin
não mudar nada./home/a/c/account/users/mail:username
com permissões semelhantesdrwx------
e de propriedade demail:4096
. Presumo que, porque o usuáriobackups
está no gruposudo
ouadmin
não tem acesso, porque não há permissões de acesso para grupos? Não sei, mas está com erro em pastas / arquivos como esse.rsync
comando com sudo.Respostas:
A adição do usuário
backups
ao grupo de usuáriossudo
não concede automaticamente à conta o acesso a todos os arquivos no sistema. Dá ao usuário a permissão para executar osudo
comando.Como você está usando autenticação de chave pública (presumivelmente sem uma senha), eu abordaria isso com segurança e facilidade de implementação em mente. O uso
ssh
permite restringir o usuário a executar apenas comandos muito específicos. Nesse caso, você pode permitir que o usuáriobackups
executersync
com permissões de superusuário.Você já realizou a troca de chaves e a autenticação verificada foi bem-sucedida. No
authorized_keys
arquivo no host remoto do qual você está fazendo backup do/home
diretório, você pode adicionar umacommand=
diretiva à chave usada pelo usuáriobackups
. Essa diretiva permitirá que esse comando seja executado apenas quando essa chave for usada para autenticação. Portanto, o primeiro campo da chave seria semelhante a este:Você pode ir ainda mais longe e adicionar mais opções à chave, como
from=myhost,no-pty,no-X11-forwarding
.Isso deve fornecer uma segurança decente e não exigir que você modifique as permissões subjacentes do sistema de arquivos. Você provavelmente precisará jogar com o comando que você coloca no
authorized_keys
arquivo até que funcione conforme o esperado; pode demorar um pouco para envolver seu cérebro. O comando especificado noauthorized_keys
substituirá basicamente asrsync
opções que você passará do host de conexão.Muita informação boa em
man sshd
. Você deseja ler especificamente a seção AUTHORIZED_KEYS FORMAT.fonte
rsync -e ssh -az [email protected]:/home /location/of/local/folder
para instruí-lo a executar como superusuário na máquina remota? Ou será feito automaticamente? Obrigado pelo seu tempo e ajuda. :)Uma opção é executar um servidor rsync no sistema remoto.
Basicamente, crie um
rsync.conf
com euid=root
depois usersync -az rsync://domain.com
.Consulte http://pastebin.com/5hQx1mRV para obter um exemplo de outra pessoa que escreveu e Configurando o daemon rsync para obter alguns princípios básicos da ativação de um servidor no Ubuntu.
Observe que você deve considerar a segurança disso. Uma abordagem melhor é provavelmente fazer com que o sistema remoto seja enviado ao sistema local.
fonte
/backup/lc
pasta no servidor remoto? Eu mudo umpath
pouco/home
para fazer isso funcionar?Talvez você possa usar o ACL se o sistema de arquivos subjacente o suportar.
Você deve adicionar o backup do grupo na ACL de cada arquivo e diretório. Mas, para ser adicionado automaticamente aos arquivos e diretórios criados recentemente, você deve primeiro definir a ACL padrão para todos os diretórios existentes. Então, no servidor remoto:
Então você deve ter permissão rx para todos os diretórios existentes e ler arquivos. Você pode fazer isso com 2 comandos (sem o -d desta vez)
Isso lhe dará permissão extra para ler os arquivos no backup do grupo sem alterar o usuário e o grupo existentes que possuem cada arquivo.
Nota: para acelerar a localização | Comando xargs, você pode adicionar a seguinte opção ao comando xargs:
-P n
com n o número de processos paralelos. Você pode configurá-lo para o número de cpu que você possui na sua máquina + 1.fonte
sudo setfacl -Rm d:group:backup:r-X,group:backup:r-X /home
:) muito mais simples!