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 вернет успех, но безрезультатно.

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

2 ответа2

6

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

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

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .