Общая папка показывает разные разрешения между хостом Windows и гостевой Ubuntu при использовании VirtualBox

Я столкнулся с проблемой странных разрешений:

В общей папке отображается один набор разрешений в Windows и совершенно разные при доступе в Linux через VirtualBox.

общая папка - это мой XAMPP htdocs / directory, так как я хочу, чтобы работать с одними и теми же репозиториями / сайтами из двух разных сред - поэтому я не могу переместить папку.

Моя текущая установка

Windows 7 (хост) с запуском Ubuntu внутри VirtualBox (Гость) Я установил папку в качестве общего местоположения и могу получить к ней доступ через терминал Ubuntu под /media/sf_<myfolder>. Общая папка настроена на автоматизацию и постоянна в настройках VirtualBox. Мой пользователь входит в группу пользователей vboxsf, и я подтвердил его с помощью /etc/group. Я установил vitrualbox-guest-additions-iso. Общие буфер обмена работают нормально. Я использую cygwin для моего терминала Windows

Как появляются разрешения

Общая папка показывает один набор разрешений в 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*

Что я заметил

Windows 7 (Host), с Ubuntu, запущенным внутри VirtualBox (Гость) Пока я могу изменять разрешения в Windows , эти изменения не отражены в Ubuntu:

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*

Я уже пробовал ...

Хотя я могу изменять разрешения в Windows, эти изменения не отражаются в Ubuntu: Я установил папку в качестве общего местоположения и могу получить к ней доступ через терминал Ubuntu в /media/sf_<myfolder>. Предложения в этом вопросе

Мои вопросы:

Предложения в этом вопросе Назначаются ли они на уровне ОС, а не уровень файла?

Любая помощь была бы потрясающей!

1
задан 11 September 2017 в 02:06

3 ответа

Краткий ответ: вы используете несовместимые среды и программное обеспечение; Windows, Cygwin и VirtualBox реализуют не-обратно совместимые реализации стандартов POSIX, поэтому изменения в одном не отражены в других.

В целом: сохранение группы и пользователя файла в виде строки было бы слишком расточительным. Не только это займет кучу дополнительного дискового пространства, но также потребует 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

1
ответ дан 22 May 2018 в 18:40
  • 1
    Спасибо за ответ @ Hi-Angel. Я не использую VM как root, так как существующие файлы появляются из коробки при доступе к общей папке. Я обновил свой вопрос, добавив stat, спасибо. – Timmah 11 September 2017 в 02:17
  • 2
    @Timmah Я ​​обновил ответ на ваше обновление, надеюсь, он очистит ваше замешательство. О root - вы уверены? Я вижу, что в вашем обновлении вы создали файлы в Ubuntu, а их владелец - root. Вы создали их в общем каталоге VB? Или где-то еще? – Hi-Angel 11 September 2017 в 12:19
  • 3
    Спасибо, это объясняет многое гораздо лучше. В этом случае существует известная комбинация программного обеспечения Windows + VM + Terminal, который использует совместимые реализации POSIX? – Timmah 12 September 2017 в 01:44
  • 4
    @Timmah Я ​​не знаю, но я сомневаюсь. Тем не менее, я думаю, вы можете приблизиться к этому, используя Ubuntu-On-Windows для Windows 10. Обратите внимание, что я никогда не использовал этот, и я знаю, что он все еще глючит, но я думаю он может решить проблемы с разрешениями POSIX (но не верьте мне на слово) . С другой стороны: знаете ли вы, что вы наносите ущерб вашему опыту Ubuntu, используя его как гость . Почему бы просто не использовать Windows в качестве гостя? – Hi-Angel 12 September 2017 в 09:22
  • 5
    Я запускаю это в офисной среде, поэтому я не звоню на мою основную ОС :(, и я также относительно новичок в настройках VM. Я слышал о Ubuntu-on-windows, известном как «Подсистема Windows для Linux» или WLA , и пока это выглядит потрясающе. У определенно есть проблемы , но по крайней мере Microsoft делает с ними что-то – Timmah 13 September 2017 в 02:23
Краткий ответ: вы используете несовместимые среды и программное обеспечение; Windows, Cygwin и VirtualBox реализуют не-обратно совместимые реализации стандартов POSIX, поэтому изменения в одном не отражены в других.

В целом: сохранение группы и пользователя файла в виде строки было бы слишком расточительным. Не только это займет кучу дополнительного дискового пространства, но также потребует 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

1
ответ дан 18 July 2018 в 07:13
Краткий ответ: вы используете несовместимые среды и программное обеспечение; Windows, Cygwin и VirtualBox реализуют не-обратно совместимые реализации стандартов POSIX, поэтому изменения в одном не отражены в других.

В целом: сохранение группы и пользователя файла в виде строки было бы слишком расточительным. Не только это займет кучу дополнительного дискового пространства, но также потребует 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

1
ответ дан 24 July 2018 в 18:45

Другие вопросы по тегам:

Похожие вопросы: