'/root/.config/git/attributes'에 액세스 할 수 없습니다 : Permission> denied”


10

우리의 우분투 서버에서 우리는에 Nginx에 사용자로 복제 할 수 있습니다 /usr/share/nginx/www즉이 www-data:www경고 등을 받고 - 데이터 소유권을

''경고 : '/root/.config/git/attributes'에 액세스 할 수 없습니다 : 권한이 거부되었습니다”

우리는 명령을 다음과 같이 실행합니다 sudo -u www-data git clone <repo>.

sudo를 사용하면이 경고가 표시되고 그렇지 않으면 정상적으로 작동합니다.

루트 사용자로 복제 할 수 있으며 문제가 없습니다.

.gitconfig는 루트에만 있으며 내용을 참조하십시오.

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

누구든지 도와주세요.

/root/.config/직접 직접 생성 하고 권한을 변경하는 등 다양한 옵션을 시도 했지만 아무것도 작동하지 않습니다. 누구든지 도와주세요.

또한 이것을 참조하십시오 :

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

따라서 git 설정에 문제가있는 것 같습니다. 누구든지 우리를 안내 할 수 있습니까?


우분투 14.04 에서이 설정을 사용하고 있습니다. 다른 우분투 12.04에서 동일한 설정을 수행하면 완벽하게 작동합니다.

또한 나는 이것을했다 :

geopc 사용자를 작성하고 sudoers 목록에 추가했으며 geopc 사용자로 로그인하여이 명령을 수행하면 sudo -u www-data git clone -v git@....../test.git 완벽하게 작동합니다.

따라서 문제는 우분투 14.04에서 루트 사용자로 직접 로그인 sudo -u www-data git clone하고이 경고가 표시 되면 복제 합니다. 그러나 우분투 12.04에는 없습니다.

우분투 14.04에서 git 버전 1.9.1을 사용하고 있습니다 .git도 버전 2.1.1로 업그레이드했지만 동일합니다.


1
파일 시스템 권한은 www-data를 포함한 다른 모든 사용자가 아래의 파일에 액세스하지 못하도록 차단하는 것이 일반적입니다 /root. 파일 시스템 권한이 아닌 경우 AppArmor 또는 SELinux와 같은 것보다 / root에 대한 웹 서버 액세스를 차단해야합니다.
HBruijn

.. 질문을 수정했습니다. 확인하십시오.
Geo


나는이 대답을 사용하고 있으며이 대답은 나를 위해 일하고있다. 당신을보십시오
Toir427

답변:


10

@mu가 맞습니다. 이것은 사용자의 HOME 환경 변수가 사용자의 HOME 환경 변수 root대신 스크립트로 전달 되는 문제입니다 www-data.

sudo 명령에 -H 스위치를 추가하기 만하면되므로 매우 쉽습니다.

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

1

HOME변수가 잘못 설정 되었다고 생각합니다 .

에서 구글 그룹 스레드 ,

HOME 환경 변수로 설정 /root이 바라 보았다 그래서 /root/.gitconfig/root/.config/git/config에 접근하지 않은 권한이없는 사용자 때문에 /root그것이 오류가 발생했습니다.

그래서 해결책은 HOME env를 사용자의 HOME 디렉토리로 설정하는 것이 었습니다.


나를 위해 시작했다 : 홈 = / 홈 / 자식 git 데몬 ...
rofrol

-1

root 이외의 user를 사용하여 숨김 인스턴스를 다시 시작하면됩니다. 일반적으로 사용자는 설치시 사용한 것과 동일합니다.

예 : atlstash

이렇게하면 HOME 변수가 / home / atlstash로 설정되고 문제가 해결됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.