Смонтировать общую папку (vbox) как другого пользователя

Извините, что спрашиваю об этом здесь, но я попробовал серверную ошибку и не получил ответа в течение 4 дней.

Связанный с этим вопрос: https://serverfault.com/questions/394197/mount-shared-folder-vbox-as-another-user


Вопрос:

Я пытаюсь смонтировать общую папку vbox каждый раз, когда запускается моя Ubuntu (10.04).

Итак, я добавил запись в /etc/init следующим образом:

description     "mount vboxsf Desktop"

start on startup

task
exec mount -t vboxsf Desktop /var/www/shared

Кажется, работает, за исключением того факта, что все файлы принадлежат «root», и у меня нет разрешения на запись в папку (ни chmod, ни chown, похоже, не работают).

Итак, как я могу сделать так, чтобы все файлы в этой общей папке принадлежали пользователю/группе www-data?


PS: Основная причина, по которой у меня есть автоматическая общая папка, заключается в том, что я могу создавать/редактировать файлы с HOST в папке GUEST www.

Если у вас есть идея получше, вместо того, чтобы делиться папкой, не стесняйтесь сказать.


person dmmd    schedule 04.06.2012    source источник


Ответы (1)


Что ж, пока у меня была другая проблема, связанная с моей общей папкой, в итоге я столкнулся с этим вопросом о стеке: apache">Общая папка в VirtualBox для Apache

Это помогло мне двумя способами, и кажется, что мне нужны параметры uid и gid.

Итак, чтобы смонтировать общую папку от имени другого пользователя, я бы запустил:

mount -t vboxsf SHARE_NAME /some/dir -o uid=48,gid=48

Кроме того, чтобы узнать, какие у вас www-data gid и uid, просто запустите id www-data.

Если вам также нужно изменить права доступа к смонтированным файлам, просто добавьте «dmode» к параметрам, например:

sudo mount -t vboxsf SHARE_NAME-o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /path/on/guest

Доступные варианты (из справки mount):

rw         mount read write (default)
ro         mount read only
uid       =<arg> default file owner user id
gid       =<arg> default file owner group id
ttl       =<arg> time to live for dentry
iocharset =<arg> i/o charset (default utf8)
convertcp =<arg> convert share name from given charset to utf8
dmode     =<arg> mode of all directories
fmode     =<arg> mode of all regular files
umask     =<arg> umask of directories and regular files
dmask     =<arg> umask of directories
fmask     =<arg> umask of regular files

И если вам нужно, чтобы он запускался во время инициализации системы, просто создайте файл в /etc/init/SOMETHING.conf с чем-то вроде этого:

description     "SOME DESCRIPTION"

start on startup

task
exec mount -t vboxsf YOUR_SHARE_NAME /path/on/guest -o uid=1000,gid=33
person dmmd    schedule 06.06.2012
comment
Я много пробовал, пока не обнаружил, что SHARE_NAME — это просто имя общего ресурса, которое я определил в настройках VirtualBox, без пути /media/..., тогда это сработало;) - person rubo77; 20.09.2012
comment
По какой-то причине это не постоянное решение в моей виртуальной машине Debian. Мне всегда нужно повторно вводить верхний код после каждого перезапуска. - person Lanti; 25.10.2015