이상한 권한 문제가 발생했습니다.
공유 폴더는 Windows에서 한 세트의 권한을 표시하고 VirtualBox를 통해 Linux에서 액세스 할 때 완전히 다른 권한 세트를 표시합니다.
공유 폴더는 내 XAMPP htdocs / 디렉토리입니다. 2 개의 다른 환경에서 동일한 저장소 / 사이트에서 작업 할 수있는 기능을 원하므로 폴더를 이동할 수 없습니다.
/media/sf_<myfolder>
.vboxsf
사용자 그룹의 일부이며 확인을 통해 확인했습니다 /etc/group
.vitrualbox-guest-additions-iso
. 공유 클립 보드가 제대로 작동합니다.cygwin
Windows 터미널에 사용 하고 있습니다.Windows (cygwin 터미널에서), 사용 $ ls -alF
me@my-server /cygdrive/c/xampp/htdocs/my-website$ ls -alF
total 61313
drwxrwxr-x+ 1 me Domain Users 0 Sep 6 12:12 ./
drwxrwx---+ 1 me Domain Users 0 Sep 8 16:22 ../
drwxrwxr-x+ 1 me Domain Users 0 Sep 8 15:57 .git/
drwxrwxr-x+ 1 me Domain Users 0 Sep 6 12:06 bal/
-rw-rw-r--+ 1 me Domain Users 1065 Sep 6 12:06 .csslintrc
-rw-rw-r--+ 1 me Domain Users 367 Sep 6 12:06 .editorconfig
Ubuntu 터미널 (VirtualBox), 사용 $ ls -alF
me@my-server:/media/sf_htdocs/my-website$ ls -alF
total 61256
drwxrwx--- 1 root vboxsf 12288 Sep 6 12:12 ./
drwxrwx--- 1 root vboxsf 4096 Sep 8 16:22 ../
drwxrwx--- 1 root vboxsf 4096 Sep 8 15:57 .git/
drwxrwx--- 1 root vboxsf 0 Sep 6 12:06 bal/
-rwxrwx--- 1 root vboxsf 1065 Sep 6 12:06 .csslintrc*
-rwxrwx--- 1 root vboxsf 367 Sep 6 12:06 .editorconfig*
Windows, 사용 $ stat
me@my-server /cygdrive/c/xampp/htdocs/my-website$ stat .csslintrc
File: .csslintrc
Size: 1065 Blocks: 4 IO Block: 65536 regular file
Device: bcd2ece6h/3167939814d Inode: 4222124651673917 Links: 1
Access: (0664/-rw-rw-r--) Uid: (1051198/me) Gid: (1049089/Domain Users)
Access: 2017-09-06 12:06:15.578083600 +1000
Modify: 2017-09-06 12:06:15.578583700 +1000
Change: 2017-09-06 12:06:15.578583700 +1000
Birth: 2017-09-06 12:06:15.578083600 +1000
Ubuntu, 사용 $ stat
me@my-server:/media/sf_htdocs/my-website$ stat .csslintrc
File: '.csslintrc'
Size: 1065 Blocks: 3 IO Block: 4096 regular file
Device: 29h/41d Inode: 14 Links: 1
Access: (0770/-rwxrwx---) Uid: ( 0/ root) Gid: ( 999/ vboxsf)
Access: 2017-09-06 12:06:15.578083600 +1000
Modify: 2017-09-06 12:06:15.578583700 +1000
Change: 2017-09-06 12:06:15.578583700 +1000
Birth: -
또한 기본 권한을 검사하기 위해 두 시스템에서 파일을 생성했습니다. 나는 테스트 디렉토리에서 똑같이했고, 두 파일 + 폴더 모두 똑같은 권한을 보여줍니다.
윈도우
-rwxrwxr-x+ 1 Administrators Domain Users 0 Sep 11 08:52 .test-from-linux-vm*
-rw-rw-r--+ 1 me Domain Users 0 Sep 11 08:52 .test-from-windows
UbuntuVM
-rwxrwx--- 1 root vboxsf 0 Sep 11 08:52 .test-from-linux-vm*
-rwxrwx--- 1 root vboxsf 0 Sep 11 08:52 .test-from-windows*
sudo chmod <permissions> <file>
Windows ; web.config를에서 664
로 업데이트 했습니다.755
-rwxr-xr-x+ 1 me Domain Users 4555 Sep 6 12:06 web.config*
우분투
-rwxrwx--- 1 root vboxsf 4555 Sep 6 12:06 web.config*
어떤 도움이라도 굉장 할 것입니다!
짧은 대답 : 호환되지 않는 환경과 소프트웨어를 사용하고 있습니다. Windows, Cygwin 및 VirtualBox는 모두 POSIX 표준 의 이전 버전과 호환되지 않는 구현을 구현 하므로 하나의 변경 사항이 다른 표준 에 반영되지 않습니다.
일반적으로 파일의 그룹과 사용자를 문자열로 저장하는 것은 너무 낭비입니다. 추가 디스크 공간이 많이 필요할뿐만 아니라 최악의 경우 단일 파일에 대한 권한이 있는지 확인 하는 데 O (n) 의 처리 시간이 필요합니다!
대신 이러한 속성은 숫자로 저장되므로 권한을 확인 하려면 항상 O (1) 만 필요합니다 . 예를 들어 stat
명령을 사용하여 볼 수 있습니다 .
$ stat r600_state_common.c
File: r600_state_common.c
Size: 90718 Blocks: 184 IO Block: 4096 regular file
Device: 26h/38d Inode: 70588 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/constantine) Gid: ( 1000/constantine)
Access: 2017-09-08 00:18:26.243828226 +0300
Modify: 2017-09-07 10:52:33.387136858 +0300
Change: 2017-09-07 10:52:33.387136858 +0300
Birth: -
따라서 시스템에서 파일의 UID는 user root
. 다른 시스템에서는 Domain
.
Windows 시스템과의 교차 작업 의 경우 더 많은 것이 있습니다. POSIX 표준에는 근본적인 변화가 없었음에도 불구하고 Microsoft 프로그래머는 항상 이에 어려움을 겪었습니다. Windows NT에서 Windows 10까지의 과정에서 이전 버전과 호환되지 않는 세 번의 구현 재 작성이 있었습니다. 따라서 호환성을 위해 Cygwin은 Windows 보안 설명자를 POSIX 권한에 매핑 하는 자체 구현 을 사용하고 있습니다 .
그 위에 VirtualBox를 통해 Windows 파일 시스템에 액세스하려고합니다. 물론 VirtualBox도 자체 매핑을 구현했으며이 매핑은 잘 작동하지 않습니다 (chmod를 통해 권한을 변경하고 변경 사항이 반영되지 않음을 통해 알 수 있듯이) .
지금 당장 시스템에 서로 호환되지 않는 세 가지 구현이 있습니다. 이것이 당신이 문제를 보는 이유입니다.
FTR : VirtualBox는 오픈 소스이므로 정말로 관심이 있다면 Cygwin과 호환되도록 다시 작성할 수 있습니다 (내가 아는 한 Windows에서 유일한 백호환 POSIX 구현이므로) .
주의 : 시스템을 루트로 사용하는 것은 매우 나쁜 습관입니다! 특히 당신이 개발자라면. 대신 일반 사용자를 사용하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다