![현재 사용자를 변경하지 않고 슈퍼유저 권한을 얻으려면 어떻게 해야 합니까?](https://linux55.com/image/159072/%ED%98%84%EC%9E%AC%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EB%B3%80%EA%B2%BD%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%8A%88%ED%8D%BC%EC%9C%A0%EC%A0%80%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EC%96%BB%EC%9C%BC%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
도트 파일과 기타 구성 파일(특히 /etc 디렉터리)을 git 저장소에 보관하고 싶습니다. 하지만 /etc 디렉터리에 쓰기 위해서는 git을 루트로 실행해야 합니다. 이는 허용할 수 없는 결과를 초래합니다. git이 다루는 소유자와 파일 그룹이 root:root로 변경됩니다. Git은 또한 저장소의 일부 파일(예: index
)의 소유자를 변경하므로 다음번에는 일반 사용자로 실행할 수 없습니다.
높은 권한으로 명령을 실행할 수 있지만 현재 사용자(루트 대신)를 명령을 실행하는 사용자로 유지할 수 있습니까?
답변1
이 문제를 처리하는 일반적인 방법은 정확히 원하는 대로 수행되지 않습니다. a를 사용하여 /etc의 구성 파일을 관리합니다.구성 관리다음과 같은 도구안시푸르.
예를 들어 Ansible을 사용하면 모든 플레이북을 git에 저장하고 해당 구성에서 컴퓨터 전체에 구성을 배포할 수 있습니다. 파일 관리는 루트로 실행되지만 일반 사용자로 실행이 시작됩니다.
/etc(및 OS의 다른 곳)에서 파일을 관리하는 이 방법은 반복성이 더 높다는 추가 이점이 있습니다(예: 호스트를 다시 설치할 수 있으며 항상 동일하게 보입니다). 또한 설치된 패키지, 실행 중인 서비스 및 기타 운영 체제 관련 관리도 관리할 수 있습니다.