프로젝트

일반

사용자정보


VS Code 관리자 권한 연동

터미널창(cmd, bash, powershell, ... )에서 Windows에서 Program Files 디렉토리와 같은 특수 디렉토리에 빌드 결과를 복사하는 명령을 실행할때 터미널이 관리자 권한으로 실행되어 있어야만 한다.
VS Code에서 터미널을 사용하면 터미널이 일반권한으로 실행되는데 둘다 관리자 권한으로 실행하기 위해서는 VS Code와 터미널의 실행파일에 항상 관리자 권한을 주면 문제가 해결된다.

이때 WSL에서 문제가 되는데 WSL에서 code를 실행하면 일반권한의 WSL이 관리자권한의 code를 실행하게되는 문제가 발생한다.
이를 해결하기위해서는 WSL의 바로가기에 관리자 권한을 주고 이를 실행함으로써 문제를 해결할수 있다.

또한 WSL을 사용하다보면 Windows Disk 공간과 Linux Disk 에서 Windows Disk 공간에서 작업을 하는것이 수월한 경우가 있다.
필자는 Windows의 W: 드라이브를 Workspace 전용 Disk로 사용하는데 Linux 와 Windows 에서 모두 동작하는 C/C++코드를 작성하는 경우가 많다.
그리고 W: 드라이브를 WSL 의 /etc/fstab 파일 설정을 통해서 /w/ 디렉터리에 마운트하여 사용한다.
그러면 WSL에서는 W: 드라이브의 디렉토리와 파일의 접근 권한이 777 이고 소유자는 root로 잡히게 된다.
문제는 cmake와 같은 도구가 소유자와 접근권한에 예민하게 반응한다는 것이다.
그래서 필자는 빌드(컴파일이나 링크)과정에서 sudo 권한을 주고 작동하게 한다.

어차피 WSL의 root는 윈도우의 사용자의 지휘아래 놓여 있기 때문에 root 개발활동을 하는것에 보안적인 이슈는 내려놓아도 별 문제는 없다.
설마 WSL을 외부에 개방해서 사용하면 다른 이야기지만 말이다. WSL에 마운트된 드라이브는 777 권한이기 때문에 절대로 개방해서는 않된다.