git : 권한 문제와 관련된 푸시 할 수 없음 (패커 풀기 오류)
git을 밀어 넣으려고 할 때이 문제가 있습니다.
error: insufficient permission for adding an object to repository database ./objects
fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To ssh://<repo url>/<repo dir>
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'ssh://<repo url>/<repo dir>'
나는 산발적으로 전에 이것을 가지고 있었고 우리는 항상 각 사용자가 저장소에 sshing하고 그 안에있는 모든 파일에 대한 그룹 권한을 설정하여 해결해야했습니다.
chmod -R g+w *
이것은 결코 만족스러운 해결책이 아니었고 이제는 남자 중 한 명이 자리를 비 웠고 아무도 그의 repo 사용자의 암호를 모르기 때문에 우리를 엉망으로 만들었습니다. 그래서 제대로 해결하려고 노력하고 있습니다.
이 오류는 누군가가 다른 사용자가 소유 한 저장소 디렉토리를 변경하는 변경 사항을 푸시하려고 할 때 발생하는 것 같습니다 (따라서 위의 그룹 쓰기 옵션 설정). 나는 이것에 대해 약간의 인터넷 검색을했고 논의중인 몇 가지 해결책을 찾았습니다 (둘 다 저에게 효과적이지 않았습니다)
1) 저장소가 공유되는 그룹이 각 사용자의 기본 그룹인지 확인합니다 (이미 그렇다고 생각합니다. 각 사용자는 하나의 그룹 만 있으므로 기본 그룹이어야합니다.)
2) git repo core.sharedRepository 설정, 여기에 자세히 설명되어 있습니다. Git : 한 컴퓨터에서 푸시 할 수 없습니다. 변경했지만 아무런 차이가 없습니다. 실제로 변경 사항을 적용하려면 구성을 다시로드해야합니까?
내 repo 구성은 atm과 같습니다.
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedRepository = all
[receive]
denyNonFastForwards = True
조언이나 제안에 감사드립니다! 최대
이를 수행하는 더 간단한 방법은 서버의 '허브'저장소에 푸시 할 때마다 chmod 명령을 실행하는 수신 후 스크립트를 추가하는 것입니다. 서버의 git 폴더 내에서 hooks / post-receive에 다음 줄을 추가합니다.
chmod -Rf u+w /path/to/git/repo/objects
2 주 동안이 오류가 발생했으며 대부분의 솔루션은 'chmod -R'을 대답으로 언급했지만, 불행히도 저에게는 내 자식 저장소 (로컬 / 원격 / 팀과 공유)가 모두 Windows OS에 있었지만 chmod -Rv는 모든 파일이 'rwxrwxrwx'로 변경되었음을 보여 주었고 후속 'ls -l'은 여전히 모든 파일을 'rwxr-xr-x'로 표시했으며 오류가 반복되었습니다. 결국 Ariejan de Vroom 이이 솔루션 을 보았습니다 . 그것은 효과가 있었고 우리는 모두 다시 당기고 밀 수있었습니다.
로컬 (푸시하는 데 문제가있는 로컬) 및 원격 저장소 모두에서 다음 명령을 실행하십시오.
$ git fsck
$ git prune
$ git repack
$ git fsck
참고로 Windows의 기본 파일 사용 권한 / ACL을 사용해 보았고 문제가있는 사용자를 관리자로 승격시키는 데 의지했지만 그 어느 것도 도움이되지 않았습니다. 환경이 중요한지 확실하지 않지만 비슷한 설정 (문제 팀 구성원 및 원격 (Windows Server 2008 R2 Standard), 내 로컬 (Windows 7 VM))을 가진 사람에게 도움이 될 수 있습니다.
권한 오류입니다. 나에게 가장 적절하고 안전한 방법은 사용자를 리포지토리 인 보조 그룹 에 추가하는 것이 었습니다 . 다음이 소유 (또는 그 반대) :
groupadd git
chgrp -R git .git
chgrp -R git ./
usermod -G -a git $(whoami)
다른 사람이이 문제를 겪고있는 경우 : 이는 사용자가 푸시하려는 저장소의 쓰기 권한이 잘못되었음을 의미합니다. 이동하고 chmod -R 그것을 사용하여 git 서버에 액세스하는 사용자가 쓰기 권한을 갖도록합니다.
http://blog.shamess.info/2011/05/06/remote-rejected-na-unpacker-error/
그냥 작동합니다.
나는 이런 종류의 것들을 관리하기 위해 gitosis를 사용합니다. Gitosis에는 모든 저장소를 소유하는 단일 사용자 (일반적으로 "git"라고 함)가 있으며 각 저장소에 대한 공개 키 기반 액세스 제어를 사용합니다. 설정에 적합하지 않을 수 있지만 확인해 볼 가치가있을 것입니다 (말장난 의도 없음).
나 에게이 오류는 리모컨의 공간이 부족할 때 발생했습니다.
나머지 오류 메시지를 읽어야했습니다.
error: file write error (No space left on device)
fatal: unable to write sha1 file
error: unpack failed: unpack-objects abnormal exit
AWS 인스턴스에서 git 리포지토리를 사용한 권한 오류의 경우 그룹을 생성하고 리포지토리 폴더에 재귀 적으로 할당 (-R)하여 문제를 성공적으로 해결하고이 그룹에 서면 권한을 부여한 다음 기본 aws 인스턴스 사용자를 할당했습니다. (ec2-user 또는 ubuntu)를이 그룹에 추가합니다.
1. goup 이름 share_group 또는 다른 것을 만듭니다.
sudo groupadd share_group
2. 저장소 폴더를 'root'그룹에서 'share_group'으로 변경합니다.
sudo chgrp -R share_group /path/to/your/repository
3. share_group에 쓰기 권한 추가
sudo chmod -R g+w /path/to/your/repository
4. 마지막 단계는 현재 사용자-로그인 할 때 기본 사용자 (기본적으로 ec2는 'ec2-user', ubuntu 인스턴스의 사용자는 aws의 ubuntu에서 'ubuntu')를 share_group에 할당하는 것입니다. AWS에서 ubuntu insance를 사용하고 있으므로 기본 사용자는 ubuntu입니다.
sudo usermod -a -G share_group ubuntu
그건 그렇고, 폴더 또는 파일의 소유권을 보려면 다음을 입력하십시오.
ls -l /path/to/your/repository
'
산출:
drwxr-x--x 2 root shared_group
(설명 참조 :
https://wiki.archlinux.org/index.php/File_permissions_and_attributes ).
3 단계를 마치면
drwx--x--x 2 root root
로 변경
drwxr-x--x 2 root share_group
이 경우 보안상의 이유로 사용자 'ubuntu'를 루트 그룹에 할당하지 않았습니다. 4 단계에 따라 기본 사용자를 루트에 할당 할 수 있습니다 (처음 3 단계
다른 방법으로 다음과 같이 솔루션을 시도했습니다.
chmod -Rf u+w /path/to/git/repo/objects
그것은 나를 위해 작동하지 않았고, 내 저장소 폴더가 Ubuntu 사용자가 아닌 루트 사용자에 속하는 이유라고 생각하며 기본적으로 'git'은 기본 사용자 (ec2-user 또는 Ubuntu 사용자를 사용합니다. 시도 할 수 있습니다. 사용자를 변경하고 테스트합니다.
마지막으로 아래 코드는 확실히 저에게 효과적이지만 777은 보안에 좋지 않습니다.
sudo chmod -R 777 /path/to/your/repo
내 원격 gitolite-admin이 손상되었거나 문제가 있다고 생각하면서 이것에도 문제가있었습니다.
내 설정은 gitolite가있는 원격 Ubuntu 10 서버가있는 Mac OS X (10.6.6) 노트북입니다.
문제는 gitolite-admin의 로컬 체크 아웃에 있음이 밝혀졌습니다 .
"압축 해제 실패"오류에도 불구하고 문제가 로컬에 있음이 밝혀졌습니다.
나는 이것을 gitolite-admin2로 다시 확인하고 변경하고 밀어서 이것을 알아 냈습니다.
짜잔! 작동했습니다!
This problem can also occur after Ubuntu upgrades that require a reboot.
If the file /var/run/reboot-required
exists, do or schedule a restart.
For what it worth, I had the same problem over my own VPS and it was caused by my low hard disk space on VPS. Confirmed by df -h
command and after i cleaned up my VPS' hard disk; the problem was gone.
Cheers.
I was getting similar error and please see below how I resolved it.
My directory structure: /opt/git/project.git and git user is git
$ cd /opt/git/project.git
$ sudo chown -R git:git .
chown with -R option recursively changes the ownership and and group (since i typed git:git in above command) of the current directory. chown -R is necessary since git changes many files inside your git directory when you push to the repository.
Where I work we have been using this method on all of our repositories for a few years without any problems (except when we create a new repository and forget to set it up this way):
- Set 'sharedRepository = true' in the config file's '[core]' section.
Change the group id of the repository to a group shared by all users who are allowed to push to it:
chgrp -R shared_group /git/our_repos chmod -R g+w /git/our_repos
Set the setgid bit on all directories in the repository so that new files/directories keep the same group:
find /git/our_repos -type d -exec chmod g+s {} +
Add this line to the pre-receive hook in the repository to ensure new file permissions allow group read/write:
umask 007
For me its a permissions issue:
On the git server run this command on the repo directory
sudo chmod -R 777 theDirectory/
ReferenceURL : https://stackoverflow.com/questions/4025708/git-cant-push-unpacker-error-related-to-permission-issues
'programing' 카테고리의 다른 글
WinForms C #의 우아한 로그 창 (0) | 2021.01.15 |
---|---|
자바 최종 수정 자 (0) | 2021.01.15 |
C의 printf 함수 코드 (0) | 2021.01.15 |
파이썬에서 파일을 읽으려고 할 때 예외를 처리하는 좋은 방법은 무엇입니까? (0) | 2021.01.15 |
Eclipse의 JUNIT 테스트 클래스-java.lang.ClassNotFoundException (0) | 2021.01.15 |