não é possível acessar '/root/.config/git/attributes': permissão> negada ”

10

Em nosso servidor Ubuntu, podemos clonar como usuário do Nginx /usr/share/nginx/wwwque possui www-data:wwwpropriedade de -dados recebendo um aviso como

”Aviso: não é possível acessar '/root/.config/git/attributes': permissão negada”

Estamos executando o comando como sudo -u www-data git clone <repo>.

Com o sudo, estamos recebendo esse aviso, caso contrário, está funcionando bem.

Podemos clonar como usuário root e não há problema.

.gitconfig está localizado apenas na raiz e consulte o conteúdo:

root@geo:~# cat /root/.gitconfig
[user]
        name = pc_user
        email = [email protected]
root@geo:~#

Alguém pode nos ajudar nisso.

Tentamos várias opções, como criadas manualmente /root/.config/diretamente e alteramos a permissão etc. mas nada está funcionando. Alguém pode me ajudar nisso.

Veja também:

root@geo:/setup/test# ll /setup/
total 16
drwxr-xr-x  4 www-data www-data 4096 Oct  9 00:14 ./
drwxr-xr-x 24 root     root     4096 Oct  9 00:14 ../
drwxr-xr-x  3 www-data www-data 4096 Oct  9 00:14 test/

root@geo:/setup/test# sudo -u www-data git clone -v git@....../test.git
Cloning into 'test'...
remote: Counting objects: 8323, done.
remote: Compressing objects: 100% (6459/6459), done.
remote: Total 8323 (delta 1543), reused 8241 (delta 1500)
Receiving objects: 100% (8323/8323), 39.85 MiB | 19.52 MiB/s, done.
Resolving deltas: 100% (1543/1543), done.
Checking connectivity... done.
warning: unable to access '/root/.config/git/attributes': Permission denied

Portanto, parece um problema com a instalação do git. Qualquer um pode nos guiar.


Estou usando essa configuração em um Ubuntu 14.04. Quando eu faço a mesma configuração em outro Ubuntu 12.04, está funcionando perfeitamente bem.

Também fiz isso:

Criou um usuário geopc e foi adicionado à lista de sudoers e, quando registramos como usuário geopc, fazemos este comando sudo -u www-data git clone -v git@....../test.git funcionando perfeitamente.

Portanto, o problema é quando entramos diretamente como usuário root no Ubuntu 14.04 e clonamos quando sudo -u www-data git cloneesse aviso chega. Mas não está no Ubuntu 12.04.

Estamos usando o git versão 1.9.1 no Ubuntu 14.04 e também atualizamos o git para a versão 2.1.1, mas o mesmo.

Geo
fonte
1
É bastante típico que as permissões do sistema de arquivos bloqueiem todos os outros usuários, incluindo www-data, de acessar arquivos em /root. Se não as permissões do sistema de arquivos, certamente coisas como AppArmor ou SELinux devem bloquear o acesso do servidor da web a / root.
precisa saber é o seguinte
Parece que não. Modifiquei a pergunta, por favor verifique.
Geo
Estou usando esta resposta e esta resposta trabalhando para mim. Tente você mesmo
Toir427

Respostas:

10

@mu está certo. Esse é um problema da variável de ambiente HOME do usuário que rootestá sendo passada para o script, em vez da www-datavariável de ambiente HOME do usuário .

Você só precisa adicionar a opção -H ao comando sudo, por isso é bastante fácil:

sudo -u www-data -H git clone -v git@....../test.git
quentinadam
fonte
1

Eu acho que a HOMEvariável está configurada incorretamente.

No segmento do grupo do Google ,

a variável de ambiente HOME foi configurada para /rootser visualizada /root/.gitconfigou /root/.config/git/configporque o usuário não privilegiado não tinha acesso a /rootela gerou um erro.

Portanto, a solução foi definir o env HOME para o diretório HOME do usuário

mu 無
fonte
para mim que estava começando: HOME = / home / git git daemon ...
rofrol
-1

Você só precisa reiniciar sua instância stash usando o usuário que não seja root. Normalmente, o usuário seria o mesmo que você usou no momento da instalação.

por exemplo, atlstash

Fazer isso definirá sua variável HOME como / home / atlstash e resolverá seu problema

Abdômen
fonte