개발관련/오류노트

Git 푸시 오류 : insufficient permission for-adding an object to repository datab

Rateye 2021. 7. 1. 10:07
728x90
반응형

 

질문 : Git 푸시 오류 : insufficient permission for-adding an object to repository datab

공유 git 원격으로 푸시하려고하면 다음 오류가 발생합니다. insufficient permission for adding an object to repository database

그런 다음 여기에서 수정 사항에 대해 읽었습니다. Fix This는 모든 파일이 올바른 그룹이기 때문에 다음 푸시에서 작동했지만 다음에 누군가가 변경 사항을 푸시 할 때 기본 그룹이있는 개체 폴더에 새 항목을 만들었습니다. 그룹으로. 내가 생각할 수있는 유일한 것은 그들이 체크인하는 항목에 대한 개발자의 기본 그룹을 모두 변경하는 것입니다.하지만 그것은 해킹처럼 보입니다. 어떤 아이디어? 감사.

답변

근본적인 원인을 확인하고 수정 한 후 (아래 참조) 권한을 복구해야합니다.

cd /path/to/repo.git
sudo chgrp -R groupname .
sudo chmod -R g+rwX .
find . -type d -exec chmod g+s '{}' +

모든 사람이 저장소를 수정할 수 있도록하려면 chgrp 가 필요하지 않으며 chmod를 sudo chmod -R a+rwX .

근본 원인을 수정하지 않으면 오류가 계속 발생하고 위의 명령을 계속해서 다시 실행해야합니다.

오류는 다음 중 하나로 인해 발생할 수 있습니다.

  • 저장소가 공유 저장소로 구성되지 않았습니다 ( git help config core.sharedRepository 참조). 다음의 출력이 :
    git config core.sharedRepository
    group 또는 true 이 아니거나 1 또는 일부 마스크가 아닌 경우 다음을 실행 해보십시오.
    git config core.sharedRepository group
    그런 다음 재귀 적 chmodchgrp 를 다시 실행합니다 (위의 "복구 권한"참조).
  • 운영 체제는 디렉토리의 setgid 비트를 "모든 새 파일 및 하위 디렉토리가 그룹 소유자를 상속해야 함"으로 해석하지 않습니다. core.sharedRepositorytrue 또는 group 경우 Git은 GNU 운영 체제 (예 : 모든 Linux 배포판)의 기능을 사용하여 새로 생성 된 하위 디렉터리가 올바른 그룹 (모든 저장소 사용자가 속한 그룹)에 의해 소유되도록합니다. 이 기능은 GNU coreutils 문서에 설명되어 있습니다 .... [If] 디렉토리의 set-group-ID 비트가 설정되면 새로 생성 된 서브 파일은 디렉토리와 동일한 그룹을 상속하고 새로 생성 된 서브 디렉토리는 상위 디렉토리의 set-group-ID 비트를 상속합니다. ... [이 메커니즘을 통해] 사용자는 새 파일을 공유 chmod 또는 chown 을 사용할 필요성을 줄임으로써 파일을 더 쉽게 공유 할 수 있습니다.그러나 모든 운영 체제에이 기능이있는 것은 아닙니다 (NetBSD가 한 예입니다). 이러한 운영 체제의 경우 모든 Git 사용자가 동일한 기본 그룹을 가지고 있는지 확인해야합니다. git config core.sharedRepository world 를 실행하여 저장소를 세계 쓰기 가능하게 만들 수 있습니다 (하지만주의해야합니다. 보안 수준이 낮습니다).
  • 파일 시스템은 setgid 비트 (예 : FAT)를 지원하지 않습니다. ext2, ext3, ext4는 모두 setgid 비트를 지원합니다. 내가 아는 한, setgid 비트를 지원하지 않는 파일 시스템은 그룹 소유권의 개념도 지원하지 않으므로 모든 파일과 디렉토리는 어쨌든 동일한 그룹 (어떤 그룹이 마운트 옵션인지)에 의해 소유됩니다. 이 경우 모든 Git 사용자가 파일 시스템의 모든 파일을 소유 한 그룹에 있는지 확인하십시오.
  • 모든 Git 사용자가 저장소 디렉토리를 소유하는 동일한 그룹에있는 것은 아닙니다. 디렉토리의 그룹 소유자가 올 바르고 모든 사용자가 해당 그룹에 있는지 확인하십시오.

 

 

출처 : https://stackoverflow.com/questions/6448242/git-push-error-insufficient-permission-for-adding-an-object-to-repository-datab
728x90
반응형