Разрешить chmod на CIFS монтировать


2

У меня есть хост Windows 7 с гостем CentOS 6 под VirtualBox.

У меня есть каталог Windows, который используется совместно с гостем Linux с помощью CIFS.

Пока все работало нормально, пока я не понял, что все chmodоперации дают:

chmod: изменение прав доступа `x ': операция не разрешена

Это понятно, но моя проблема в том, что некоторые инструменты, которые я не могу контролировать, пытаются получить chmodфайлы для меня и в результате дают сбой.

Можно ли разрешить, но игнорировать все chmod()вызовы при монтировании CIFS? Обратите внимание, что эти вызовы выполняются из языка программирования, а не из chmodутилиты командной строки .

Редактировать: руководство для mount.cifs говорит (подчеркните мое):

Основной протокол CIFS не предоставляет информацию о владельце Unix или режим для файлов и каталогов. Из-за этого файлы и каталоги, как правило, будут принадлежать тем значениям, которые установлены в параметрах uid = или gid =, и для них будут установлены разрешения по умолчанию file_mode и dir_mode для монтирования. Попытка изменить эти значения с помощью chmod / chown вернет успех, но безрезультатно.

Это именно то поведение, за которым я следую, так почему же это не работает для меня?


Пожалуйста, не могли бы вы уточнить, какой язык программирования и чего вы на самом деле пытаетесь достичь с помощью языка программирования . Разрешить, но игнорировать на первый взгляд кажется противоречивым. Дальнейшее изучение поможет нам понять вашу проблему.
Дэвид

Я не думаю, что вы можете игнорировать все модификации разрешений. , , действительно ли сценарий выручает при изменении прав доступа к файлу, или он выручает позже, так как разрешения недостаточно? Если их недостаточно, вы можете использовать параметры монтирования (file_mode и dir_mode), чтобы установить для всех файлов необходимые вам разрешения. , ,
Эрни

@ Дэвид: Опять же, я не контролирую инструмент, который, как мне кажется, запрограммирован на C и выполняет вызовы функции системы chmod(). @ernie Выручает, когда права доступа к файлу (пытаются быть изменены), и не завершается.
Бенджамин

Для информации я пытаюсь установить пакет PEAR для PHP поверх Composer , и сценарий завершается ошибкой, поскольку его установщик пакета PHAR пытается выполнить chmod()некоторые файлы. Точная ошибка: извлечение из phar "..." завершилось неудачно: невозможно извлечь "package.xml" в "...", установка прав доступа к файлу не удалась .
Бенджамин

Спасибо, это был фон, который мы искали. Можете ли вы добавить дополнительные разрешения в вашей системе Windows, чтобы разрешить то, что происходит в сценарии установки? Звучит так, как будто скрипт пытается установить что-то для исполняемого файла, который может не работать на общем ресурсе Windows.
Дэвид

Ответы:


7

Нашел его: nopermпараметр mount делает именно это:

//192.168.56.1/www /mnt/www cifs noperm,username=www,password=xxx, ...

Обратите внимание, что mount -aпараметр не применяется, вы должны перезагрузиться, чтобы он заработал.
Мне понадобилось много проб и ошибок, чтобы понять это.

Теперь chmodработает нормально, команда не выдает никакой ошибки и просто игнорируется.


2
Зачем перезагружаться, когда вы можете просто размонтировать и снова смонтировать? Возможно CIFS может даже перемонтировать.
Даниэль Б,

Не следует также mount -aразмонтировать и перемонтировать?
Бенджамин

Это было бы смертельно. Он монтирует только размонтированные в настоящее время файловые системы из/etc/fstab
Даниэль Б

0

Попробуйте добавить опцию exec. Я считаю, что монтирование от имени пользователя без полномочий root отключит exec.

https://unix.stackexchange.com/questions/34822/is-it-possible-to-enable-execution-of-files-from-a-cifs-mount-in-bash


Я боюсь того же exec: операция не разрешена .
Бенджамин

попробовать монтировать как root?
Дэвид

Ну, посмотрев еще пару статей, вы не можете chmod + x к файлу на общем ресурсе windows. Вы пометили все файлы как исполняемые, так file_mode=0777или иначе используя опцию . Я бы предложил установить модуль pear в папку в файловой системе Linux, а затем скопировать его.
Дэвид

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.