티스토리 뷰

그래요. 여기까지 왔다는건 이미 Github Repository 설정에서 web hook 설정까지는 끝냈겠지만... 

오류가 났다 그죠?

 

{
    "status": "success",
    "message": "Data updated successfully.",
    "response": {
        "message": "Webhook processed successfully",
        "output": "fatal: detected dubious ownership in repository at '/var/www/web-site'\nTo add an exception for this directory, call:\n\n\tgit config --global --add safe.directory /var/www/web-site\n"
    }
}

 

이것 저것 만져보고 200이란 숫자에 박수 한 번 쳤다가

아래 에러를 해결하지 못했을 겁니다.

fatal: detected dubious ownership in repository at '/var/www/web-site'\nTo add an exception for this directory, call:\n\n\tgit config --global --add safe.directory /var/www/web-site\n"

 

네 맞습니다. 저와 함께 몇가지 해결방법을 해봅시다.

 

root 사용자에도 설정해보고 bitnami 계정에도 해봣겠지만 안된다 그죠?

왜냐하면 실제로 apache 를 실행시키고 그녀석이 사용하는 계정은 다른 녀석이니까요!!!!

일반적으로는 `daemon` 사용자입니다.

`daemon` 사용자로 `git config`를 실행할 때 발생하는 "Permission denied" 에러는 `daemon` 사용자가 해당 위치에 파일을 생성하거나 수정할 권한이 없음을 나타냅니다. 이 문제를 해결하는 방법에는 몇 가지가 있습니다:

 

0. 소유권 변경

웹서버 사용자가 웹 애플리케이션 파일에 접근할 수 있도록 소유권을 변경합니다. 예를 들어, `daemon`  사용자와 그룹에게 `/var/www/web-site` 디렉토리의 소유권을 부여합니다. 이거 중요하더라구요. 

sudo chown -R daemon:daemon /var/www/web-site

만약, Group, user명을 확인하고 싶으면 httpd.conf에서 user = ...., group = .... 이라고 된게 있을 겁니다. 두줄에 걸쳐서 각각 표시되고 있으니 확인해보세요!

/opt/bitnami/apache2/conf/httpd.conf

 

 

1. sudo 환경에서 Git 설정 변경

보통, 시스템의 root 사용자는 모든 설정과 파일에 접근할 수 있습니다. 따라서 root 사용자로서 git config 명령을 실행할 때는 --global 옵션을 사용하지 말고, 시스템 전체에 영향을 미치는 --system 레벨로 설정을 변경할 수 있습니다.

sudo git config --system --add safe.directory /var/www/web-site

 

이 명령은 시스템 전체 설정 파일(/etc/gitconfig)에 변경사항을 적용합니다.

 

 

2. .gitconfig 파일 권한 확인 및 변경

`daemon` 사용자의 홈 디렉토리 또는 `.gitconfig` 파일의 위치와 권한을 확인하고, 필요한 경우 권한을 조정해야 할 수 있습니다.

먼저, `daemon` 사용자의 홈 디렉토리를 확인합니다

getent passwd daemon

확인된 디렉토리 내의 .gitconfig 파일 권한을 확인하고, 적절히 수정합니다:

sudo ls -la /usr/sbin/.gitconfig  # 예시 경로, 실제 경로에 따라 다를 수 있음
sudo chown daemon:daemon /usr/sbin/.gitconfig  # 소유권 변경
sudo chmod 644 /usr/sbin/.gitconfig  # 권한 변경

 

3. 명령 실행 위치 확인

/usr/sbin/nologin 자체가 디렉토리가 아니죠?

위에 `daemon`  사용자의 홈 디렉토리가 `/usr/sbin`이 아닐 가능성이 있습니다. 일반적으로 `daemon` 과 같은 시스템 사용자에게는 실제 로그인 쉘 또는 홈 디렉토리가 없을 수 있습니다. 이 경우, 명시적으로 환경 변수를 설정하여 Git 구성 파일의 위치를 지정할 수 있습니다.

sudo -u daemon HOME=/tmp git config --global --add safe.directory /var/www/web-site

위 명령은 일시적으로 `HOME` 환경 변수를 `/tmp`로 설정하고 `git config`를 실행합니다.

 

이러한 단계를 통해 `daemon` 사용자로서 필요한 Git 설정을 적용할 수 있습니다. 설정이 성공적으로 적용되면,

Git 관련 작업을 `daemon`  사용자로 수행할 때 권한 문제가 해결될 것입니다.

 

 

 

GOOD LUCK

 

댓글