Я столкнулся с проблемой странных разрешений:
В общей папке отображается один набор разрешений в Windows и совершенно разные при доступе в Linux через VirtualBox.
общая папка - это мой XAMPP htdocs / directory, так как я хочу, чтобы работать с одними и теми же репозиториями / сайтами из двух разных сред - поэтому я не могу переместить папку.
Общая папка показывает один набор разрешений в Windows и совершенно разные при доступе в Linux через VirtualBox.
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*
терминал Ubuntu (VirtualBox), используя $ ls -alF
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: -
Я также создал файл из обеих систем, чтобы проверить разрешения по умолчанию. Я сделал то же самое с тестовыми каталогами, и оба файла + папки отображали точно такие же разрешения.
Ubuntu, используя $ stat
-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*
UbuntuVM ; обновленный web.config от 664 до 755
-rwxr-xr-x+ 1 me Domain Users 4555 Sep 6 12:06 web.config*
Ubuntu
-rwxrwx--- 1 root vboxsf 4555 Sep 6 12:06 web.config*
Любая помощь была бы потрясающей!
В целом: сохранение группы и пользователя файла в виде строки было бы слишком расточительным. Не только это займет кучу дополнительного дискового пространства, но также потребует O (n) времени обработки в худшем случае, чтобы проверить, есть ли у вас разрешения для одного файла!
Вместо этого эти атрибуты хранятся как число, которое всегда требовало бы только O (n) для проверки разрешений. Вы можете видеть их, используя, например, 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 файла совпадает с пользователем root. В другой системе это Domain.
В целом есть еще что-то. Несмотря на то, что стандарт POSIX не имел реальных изменений, программисты Microsoft всегда боролись с этим. В течение курса от Windows NT до Windows 10 было три непереходных совместимых перезаписывания реализации. Поэтому для совместимости Cygwin использует собственную реализацию сопоставления дескрипторов безопасности Windows с разрешениями POSIX.
Кроме того, вы пытаетесь получить доступ к файловой системе Windows через VirtualBox. VirtualBox, конечно же, внедрил собственное сопоставление, и это сопоставление не очень хорошо работает (как вы можете видеть, изменяя разрешения через chmod и не видя, что изменения отражены).
Итак, прямо сейчас, у вас есть 3 реализации в вашей системе, несовместимые друг с другом. Это причина того, что вы видите проблемы.
FTR: VirtualBox - это с открытым исходным кодом, поэтому, если вы действительно этому увлекаетесь, вы можете переписать его для совместимости с Cygwin (так как вы можно увидеть, изменив разрешения через chmod и не увидев, что изменения отражены) .
FTR
В целом: сохранение группы и пользователя файла в виде строки было бы слишком расточительным. Не только это займет кучу дополнительного дискового пространства, но также потребует O (n) времени обработки в худшем случае, чтобы проверить, есть ли у вас разрешения для одного файла!
Вместо этого эти атрибуты хранятся как число, которое всегда требовало бы только O (n) для проверки разрешений. Вы можете видеть их, используя, например, 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 файла совпадает с пользователем root. В другой системе это Domain.
В целом есть еще что-то. Несмотря на то, что стандарт POSIX не имел реальных изменений, программисты Microsoft всегда боролись с этим. В течение курса от Windows NT до Windows 10 было три непереходных совместимых перезаписывания реализации. Поэтому для совместимости Cygwin использует собственную реализацию сопоставления дескрипторов безопасности Windows с разрешениями POSIX.
Кроме того, вы пытаетесь получить доступ к файловой системе Windows через VirtualBox. VirtualBox, конечно же, внедрил собственное сопоставление, и это сопоставление не очень хорошо работает (как вы можете видеть, изменяя разрешения через chmod и не видя, что изменения отражены).
Итак, прямо сейчас, у вас есть 3 реализации в вашей системе, несовместимые друг с другом. Это причина того, что вы видите проблемы.
FTR: VirtualBox - это с открытым исходным кодом, поэтому, если вы действительно этому увлекаетесь, вы можете переписать его для совместимости с Cygwin (так как вы можно увидеть, изменив разрешения через chmod и не увидев, что изменения отражены) .
FTR
В целом: сохранение группы и пользователя файла в виде строки было бы слишком расточительным. Не только это займет кучу дополнительного дискового пространства, но также потребует O (n) времени обработки в худшем случае, чтобы проверить, есть ли у вас разрешения для одного файла!
Вместо этого эти атрибуты хранятся как число, которое всегда требовало бы только O (n) для проверки разрешений. Вы можете видеть их, используя, например, 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 файла совпадает с пользователем root. В другой системе это Domain.
В целом есть еще что-то. Несмотря на то, что стандарт POSIX не имел реальных изменений, программисты Microsoft всегда боролись с этим. В течение курса от Windows NT до Windows 10 было три непереходных совместимых перезаписывания реализации. Поэтому для совместимости Cygwin использует собственную реализацию сопоставления дескрипторов безопасности Windows с разрешениями POSIX.
Кроме того, вы пытаетесь получить доступ к файловой системе Windows через VirtualBox. VirtualBox, конечно же, внедрил собственное сопоставление, и это сопоставление не очень хорошо работает (как вы можете видеть, изменяя разрешения через chmod и не видя, что изменения отражены).
Итак, прямо сейчас, у вас есть 3 реализации в вашей системе, несовместимые друг с другом. Это причина того, что вы видите проблемы.
FTR: VirtualBox - это с открытым исходным кодом, поэтому, если вы действительно этому увлекаетесь, вы можете переписать его для совместимости с Cygwin (так как вы можно увидеть, изменив разрешения через chmod и не увидев, что изменения отражены) .
FTR