git pull 권한을 루트로 변경하지 마십시오.

git pull 권한을 루트로 변경하지 마십시오.

저는 몇 달 동안 그다지 크지 않은 시스템을 관리해 왔지만 현재 처리 방식이 마음에 들지 않는 몇 가지 문제가 여전히 남아 있습니다.

현재 서버에 액세스하는 사용자는 실제로 한 명뿐이므로 큰 문제는 없을 것 같습니다. 그러나 해당 사용자(및 서버에 액세스하는 다른 모든 사용자)는 끊임없이 변화하는 git 저장소에 액세스할 수 있습니다. 최신 정보를 얻으십시오. 얼마 전 모든 기존 사용자에 대해 모든 저장소를 가져오기 위해 루트로 cron 작업을 생성했지만 파일이 루트에서 작성되었기 때문에 이로 인해 저장소의 권한이 손상되어 일반 사용자는 "pull과 같은 git 작업"과 같은 작업을 수행할 수 없었습니다. " 빠르다.

그래서 내 질문은 실제로 git repo 디렉터리 및 하위 디렉터리의 권한을 변경하지 않고 루트로 저장소를 업데이트할 수 있는 방법이 있습니까? 아니면 모든 기존 사용자를 반복하여 각각 로그인하는 스크립트를 만들어야 하는지입니다. 사용자의 권한이 손상되지 않도록 저장소를 업데이트합니다.

궁극적인 목표는 이 작업을 최대한 자동화하는 것입니다. 각 저장소가 작동하는 동안 수동으로 가져오는 것은 장기적으로 유지할 솔루션이 아니기 때문입니다.

답변1

예, 그들 중 한 명은 root그것이 가능하다고 생각합니다. 예, 모든 사용자로 변경하세요.

그래서

as root:
  foreach user: # for user in …
     create a sub-shell: # (stuff todo in sub-shell)
        become that user # sudo
        do the work # git pull

루트 상태를 다시 얻을 수 있도록 하위 쉘을 생성하는 것이 더 쉬울 수도 있습니다(꼭 필요한 것은 아니지만 다른 쉘링 방법은 모르겠습니다).

관련 정보