AWS EC2를 접속하기 위해서 pem
키를 사용하였는데
WSL2를 이용하여 접속하려 하니 400
으로 권한을 좁혀 달라는 문장이 나왔다.
chomod 400 key.pem
을 이용하여 그대로 실행을 하였지만
ls -la를 통해 권한을 확인하니 수정이 되긴 하였지만
-r-xr-xr-x
으로 엉뚱한 권한으로 수정이 되었다.
찾아보니 400으로 정확히 권한을 수정하려면
WSL2의 home
디렉토리로 옮겨서 수정하고 다시 복사해 오면된다고 하였다.(실제로 잘 됨)
하지만 번거롭게 계속 옮길 수 없어 다시 찾아 보았다.
결론부터 말하자면 아래의 명령어를 입력 후 터미널을 재실행하면 잘된다.
$ sudo umount /mnt/c
$ sudo mount -t drvfs C: /mnt/c -o metadata
DrvFs
는 WSL와 윈도우 파일 시스템간 상호 운용을 지원하기 위해 디자인된 파일시스템 플러그인 입니다.
DrvFs
는 /mnt
또는 /mnt/c
, /mnt/d
등등의 파일시스템 아래에 드라이브가 마운트 되도록 WSL을 가능하게 합니다.
리눅스 권한은 파일에 추가적인 메타데이터로 추가되는데
파일이 리눅스와 윈도우의 read/write/execute
권한 bits를 갖는 것을 뜻합니다.
Prior to Build 17063, all files/folders list “root” as the owner and belonged to the group “root”. The permission bits on each file/folder was derived from Windows permissions–no write bit checked for Windows meant no write bit set in WSL.
메타데이터를 갖지 않는 파일들은 17063
빌드 이전의 방식으로 접근하며
지금은 chmod/chown
은 파일 또는 폴더에 메타데이터를 할당 가능합니다. WSL에 새롭게 생성된 파일들은 기본적으로 메타데이터와 같이 생기고 우리가 설정한 마운트 옵션 또는 .mkdir/open
을 실행 할 때 전달 하는 권한을 따릅니다.
파일 또는 폴더가 메타데이터를 가지면 윈도우와 리눅스 권한이 서로 갖게 행동하지는 않습니다.
There are a few things to make sure you’re aware of when tinkering with the new metadata:
윈도우 에디터로 파일을 수정하는 것은 파일의 리눅스 메타데이터를 삭제할 수 도 있는데,
이러한 경우에는 기본 권한으로 복구됩니다.
WSL에서 파일의 모든 write
bits를 삭제하는 것은 윈도우가 해당 파일을 read-only
로 표시하게 합니다.
여러 WSL 배포판이 설치되어 있거나 WSL이 설치된 여러 Windows 사용자가 있는 경우
모두 동일한 파일에서 동일한 메타데이터를 사용합니다.
각 WSL 사용자 계정의 uid는 다를 수 있습니다. 권한을 설정할 때 고려해야 할 사항입니다.
파일 또는 폴더의 권한은 WSL보다 Windows가 우선.
https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/