‘git / attributes’에 액세스 할 수 없습니다. objects: 100% (11872/11872), done. remote:

경고 remote: warning: unable to access '/root/.config/git/attributes': Permission denied는 무엇을 의미하며 그 의미는 무엇입니까?

$git clone git://git.eclipse.org/gitroot/egit/egit.git
Cloning into 'egit'...
remote: warning: unable to access '/root/.config/git/attributes': Permission denied
remote: Counting objects: 57926, done.
remote: Compressing objects: 100% (11872/11872), done.
remote: Total 57926 (delta 30734), reused 56308 (delta 29136)
Receiving objects: 100% (57926/57926), 32.29 MiB | 1021 KiB/s, done.
Resolving deltas: 100% (30734/30734), done.
Checking out files: 100% (1483/1483), done.

잠재적 인 인프라 문제를 호스팅 업체에보고해야합니까?



답변

나는이 상황을 직접 만났다. ~/.config/해당 폴더를 찾고 있는지 확인한 후 해당 폴더의 소유자가임을 알았습니다 root. 나는 이것을로 변경 my_user_name했고 작동했습니다.

cd ~/
ls -al
<Noticed .config was owned by root, unlike everything else in $HOME>
sudo chown -R $(whoami) .config

원인을 아는 것도 도움이됩니다.이 디렉토리는이를 사용하는 프로그램을 처음 실행할 때 생성됩니다. 명령이로 실행 된 root경우이 권한 문제가 발생합니다.

예를 들어, ~/.config디렉토리가 아직 존재하지 않고을 실행 sudo htop하면 ~/.config및 디렉토리 ~/.config/htop가에서 생성되고 소유됩니다 root. 그 후 일반 git 명령은 액세스 할 수 없으며 ~/.config위의 경고를 표시합니다. (크레딧 : 사용자 mehtunguh)

-R와 옵션 chownIS는 재귀 적으로 권한을 수정합니다. 아래에 하위 폴더가있는 경우 도움이됩니다.~/.config


답변

귀하의 HOME환경 변수가 잘못 설정된 것 같습니다.

로부터 구글 그룹 스레드 ,

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

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


답변

Git은 사용자 구성 대신 루트에서 구성을 읽으려고합니다. 환경 변수에 올바른 git 구성 세트가 있는지 또는 홈 폴더의 .gitconfig 파일에 액세스 할 수 있는지 확인하십시오.


답변

루트 디렉토리로 이동

cd ~/

다음 코드를 작성하십시오.

sudo chown -R username /Users/username

여기서 username은 시스템의 사용자 이름입니다.


답변

비슷한 문제를 실행했으며 서버 측에서 해결할 수있었습니다. git은 uwsgi 아래에서 실행되므로 uwsgi config에 다음 줄을 추가했습니다.

env = HOME=/srv/git

여기서 / srv / git은 uwsgi가 실행하고 만든 동일한 uid가 소유 chmod u+rwX /srv/git
하므로 git을 실행하는 프로세스에 대한 서버 측의 HOME 변수를이 프로세스가 읽기 / 쓰기 / 트래버스 권한을 가질 디렉토리로 가리켜 야합니다.


답변

Windows의 경우 CMD 또는 SSH 클라이언트와 같은 일부 프로세스가 Git에서 삭제하려는 일부 폴더를 연 경우 일 수 있습니다.