일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- sts
- 우리FISA
- AWS
- K-디지털트레이닝
- 맥OS
- 우리FIS아카데미 #
- 리눅스
- springboot
- 글로벌소프트웨어캠퍼스
- 클라우드 서비스 개발 #
- route 53
- 맥북
- 도메인
- 맥
- 우리에프아이에스 #
- 우리FISA #
- 로드밸런스
- spring
- dbeaver
- 우리에프아이에스
- Gradle
- HTTP
- 우리FIS아카데미
- mysql
- jdk
- 클라우드 서비스 개발
- Java
- https
- M2
- Today
- Total
<<개발일지>>
소스트리 에러 본문
bitbucket 형상관리 툴을 이용해서 클론을 받고 클론 받은 폴더를 소스트리에 연결하려고 했는데 에러가 발생했다. ㅠㅠ
'git status 에러 128'
이는 현재 로그인 중인 윈도우 유저와 WSL 파일/폴더의 소유자가 달라서 발생하는 오류이다.
즉, 공유 ip 이기 때문에, 다른 사용자가 무결성을 깨트릴 수도 있기 때문이라는 말이다.
이를 해결 하기 위해서
git config --global --add safe.directory '*'
를 해줘서 이 directory는 안전하다(무결성으로 부터) 고 알림으로써 해결하려고 했다.
하지만,,
이상하게 해결이 안 되었다.
현재 나는 이 명령어를 원격 서버에서 입력하고 있었다.
==해결==
문제의 원인은 이 입력을 소유자가 동일한 원격 서버에서 입력하고 있었기 때문이다.
소스트리는 로컬에서 실행되는 것인데, 로컬 깃에서 이 원격의 서버에 있는 directory가 안전하다고 추가해줘야 한다.
즉,
git config --global --add safe.directory '%(prefix)///192.168.**/ever/sourcetree/man-con'
문제가 발생한 Git이 네트워크 드라이브나 공유 디렉토리에서 작업할 때, 파일 시스템의 소유권을 검사하는 과정에서 현재 사용자와 파일 소유자가 일치하지 않는 경우 보안 문제를 방지하기 위해 "dubious ownership" 오류를 발생시키기 때문입니다. 이 오류는 다른 사용자에 의해 관리되는 파일이 악의적으로 변경될 가능성을 차단하기 위한 보호 장치입니다.
원인 설명
- 파일 소유권 차이:
- 저장소가 위치한 네트워크 드라이브 또는 공유 디렉토리의 소유자가 현재 로그인한 사용자와 다릅니다.
- 예를 들어, 저장소의 소유자는 S-1-5-21-3089604273-1590399036-4165978311-1000인데, 현재 사용자는 S-1-5-21-800574137-3659855456-3200020956-1001입니다.
- Git의 보안 보호 장치:
- Git은 파일 시스템의 소유권이 일치하지 않는 경우, 사용자가 악의적인 파일 변경으로부터 보호하기 위해 이 경고를 발생시킵니다.
- 이는 특히 네트워크 드라이브나 공유 디렉토리에서 흔히 발생합니다.
해결 방법 설명
문제를 해결하기 위해 Git에 해당 디렉토리가 안전하다는 것을 알려주어야 합니다. 이를 위해 안전한 디렉토리 목록에 해당 디렉토리를 추가합니다.
git config --global --add safe.directory '%(prefix)///192.168.*/ever/sourcetree/man-con' 명령어를 실행하면, Git은 해당 디렉토리를 안전한 디렉토리 목록에 추가하고, 소유권이 다르더라도 경고를 무시하게 됩니다.
명령어 설명
- git config --global --add safe.directory: 글로벌 설정에 안전한 디렉토리를 추가하는 명령어입니다.
- '%(prefix)///192.168.1.221/everspin/sourcetree/management-console': 오류 메시지에 제공된 형식을 그대로 사용한 경로입니다. %(prefix)는 Git이 내부적으로 사용하는 접두사를 나타내며, 이는 Git이 올바르게 경로를 인식할 수 있도록 도와줍니다.
요약
- 문제 발생 원인: 현재 사용자와 네트워크 드라이브 또는 공유 디렉토리의 소유자가 다를 때 발생하는 보안 보호 장치.
- 해결 방법: Git 설정에 해당 디렉토리를 안전한 디렉토리로 추가하여 소유권 경고를 무시하도록 설정.
- 사용된 명령어: git config --global --add safe.directory '%(prefix)///192.168.**/ever/sourcetree/man-con'
이해를 돕기 위해 문제의 원인과 해결 방법을 자세히 설명드렸습니다. 추가적인 질문이 있거나 다른 도움이 필요하시면 언제든지 알려주세요.
===
공유 네트워크 드라이브의 본질은 여러 사용자가 파일에 접근하고 수정할 수 있도록 하는 것입니다. Git은 이러한 환경에서 데이터의 무결성과 보안을 보장하기 위해 파일 소유권과 권한을 검사합니다. 이 검사에서 소유권 불일치를 발견하면 경고를 발생시켜 사용자가 신중하게 작업할 수 있도록 합니다.
요약하자면
- 공유 네트워크의 본질:
- 여러 사용자가 접근할 수 있어 파일을 수정하거나 삭제할 수 있습니다.
- 네트워크 드라이브의 파일 소유자와 로컬에서 작업하는 사용자가 다를 수 있습니다.
- Git의 경고 목적:
- 데이터 무결성을 위협하는 상황(악의적인 변경, 의도하지 않은 변경 등)을 방지하기 위함입니다.
- 경고를 통해 사용자가 네트워크 드라이브의 보안 위험을 인식하고, 필요한 조치를 취하도록 합니다.
- 안전한 디렉토리 설정:
- 사용자가 네트워크 드라이브의 신뢰성을 보장할 수 있다고 판단하는 경우, Git 설정을 통해 해당 디렉토리를 안전한 디렉토리로 추가합니다.
- 이를 통해 경고를 무시하고 작업을 계속할 수 있습니다.
Git 설정 방법
- 명령 프롬프트 또는 PowerShell에서 Git 설정:
-
sh코드 복사git config --global --add safe.directory '//192.168.**/ever/sourcetree/man-con'
- Git Bash에서 명령어 실행:
-
sh코드 복사git config --global --add safe.directory '//192.168.**/ever/sourcetree/man-con'
- .gitconfig 파일 수정:
ini코드 복사[safe] directory = //192.168.**/ever/sourcetree/man-con
- 홈 디렉토리에 있는 .gitconfig 파일을 열어 다음 내용을 추가합니다:
결론
네트워크 드라이브는 여러 사용자가 접근할 수 있어 데이터 무결성과 보안에 위협이 될 수 있습니다. Git의 경고는 이러한 위험을 인식하도록 돕기 위한 것입니다. 경고를 무시하고 계속 작업하려면 해당 디렉토리를 안전한 디렉토리로 설정해야 합니다. 이는 사용자가 해당 디렉토리의 신뢰성을 보장할 수 있다고 판단할 때만 설정해야 합니다.
'git 다루기' 카테고리의 다른 글
깃 commit 취소 하기 -정리중- (1) | 2024.04.13 |
---|---|
내 브랜치 생성후 다른 브랜치 복사하기 -정리중- (4) | 2024.04.01 |
깃 협업 참고 동영상(공사중) (2) | 2024.03.11 |
commit 하면서 issue close하기 (1) | 2024.01.08 |
github에 최초로 올리기 (1) | 2023.12.19 |