Windows에서 WSL로 파일 복사 시 root 소유권으로 적용되는 문제
탐색기든 robocopy든 예를 들어 다음과 같은 식으로 WSL 측에 파일을 복사하면,
// wsl 측의 사용자 계정이 testusr라고 가정
c:\> robocopy c:temp \\wsl$\home\testusr\temp /S /copy:DATX
WSL 측으로 복사된 파일/디렉터리의 소유권이 root로 됩니다.
$ ls -l
total 112
drwxr-xr-x 12 testusr testusr 32768 Jul 19 16:19 ./
drwxr-xr-x 3 root root 4096 Jul 9 2020 ../
...[생략]...
drwxr-xr-x 2 testusr testusr 4096 May 6 13:23 app/
drwxr-xr-x 3 root root 4096 Jul 19 16:19 temp/
윈도우에서 복사 시 대상 리눅스 측에서의 계정이 모호하다는 점에서 일면 이해가 됩니다. 어쨌든 이렇게 root 계정으로 만들어진 게 맞다면 그냥 써도 좋겠지만, 아마 대부분의 경우에는 별도로 WSL 측에서 다시 권한을 바꿔야 하는 불편함이 있습니다.
$ sudo chown -R $USER:$USER *.*
그나저나, 어차피 WSL 측에서 명령을 실행해야 한다면 그냥 애당초 cp 명령어로 다음과 같이 복사하는 것이 더 좋습니다.
$ echo $USER
testusr
$ cp -r /mnt/c/temp ./temp
$ ls -l
total 112
drwxr-xr-x 12 testusr testusr 32768 Jul 19 16:19 ./
drwxr-xr-x 3 root root 4096 Jul 9 2020 ../
...[생략]...
drwxr-xr-x 2 testusr testusr 4096 May 6 13:23 app/
drwxr-xr-x 3 testusr testusr 4096 Jul 19 16:19 temp/
보다시피 현재의 사용자 계정을 따르므로 복사된 파일들이 root 소유권이 아니어서 부가 작업이 필요치 않습니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]