У меня есть система Windows, работающая с centos внутри виртуального ящика vm.
У меня есть каталог, которым я поделился в Windows и смонтированный из centos в fstab, например:
//<ip address>/head_build /mnt/company-build cifs user,uid=0,gid=0,rw,auto,exec,suid,username=uname,password=pword,iocharset=utf8 0 0
В подпапке у меня есть сценарий. Если я попытаюсь запустить его, я получу ошибку 'bad interpreter'
, который, как мне кажется, можно исправить с помощью dos2unix.
Однако я не могу ничего сделать с этим сценарием. dos2unix говорит Failed to open output temp file: Permission denied
.
chmod и chown также говорят, что в разрешении отказано. lsattr говорит 'Inappropriate ioctl for device while reading flags'
.
Редактировать: Я вошел в систему как root на машине centos. Общая папка в Windows предоставила доступ всем, чтобы делать все (пользователь из монтирования также имеет разрешения на папку в Windows).
Изменить 2: Я пробовал добавить file_mode = 777, dir_mode = 777 (как предлагается в комментариях), а также umask = 777 и noperm (думал, что это сделает), но не повезло.
Изменить 3: Пообщавшись с S19N, я согласен, что проблема, похоже, на стороне сервера монтирования, то есть в окнах. Но общая папка имеет все разрешения, о которых я могу думать. Есть ли какой-то секретный соус для получения разрешений на выполнение от монтирования cifs в Windows?
Изменить 4: Вот результат calcs
для каталога, которым я поделился в Windows:
c:\company\builds\head>cacls build
c:\company\builds\head\build computer-name\uname:(OI)(CI)F
BUILTIN\Administrators:F
BUILTIN\Administrators:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
Everyone:(OI)(CI)F
Казалось бы, это показывает, что эта папка при подключении допускает все разрешения.
Изменить 5: Основываясь на комментарии Джима, я проверил net session
, на окне окна, чтобы увидеть, что я был подключен, как от крепления. Когда я попытался запустить команду net session с моей учетной записью uname (той, которую я использую для монтирования), мне было отказано в доступе.
Когда я использовал run as administrator
, Я увидел, что обращаюсь к монтированию с учетной записью uname. Я отключил UAC в учетной записи uname (UAC - это система в Windows 7, которая спрашивает вас, хотите ли вы разрешить выполнение определенных действий). Это фактически позволило запустить учетную запись uname net session
без ошибок.
Однако учетная запись uname по-прежнему не может ничего делать с монтированием: touch: cannot touch 'test': Permission denied
Изменить 6: Я просто активировал настоящую учетную запись администратора в окне Windows (как описано Вот) и использовал его как пользователя для монтирования. Думал, что сойдет. Тем не менее получить разрешение запрещено изнутри крепления.
По прихоти я также попытался запустить виртуальную машину из учетной записи администратора. Та же проблема.
Спасибо!
Какими кажутся права доступа к файлам (и родительским каталогам) из Linux?
Попробуйте добавить file_mode=777
и dir_mode=777
к вашим параметрам: если сервер не поддерживает расширения CIFS Unix, это отменяет режим файла по умолчанию или режим по умолчанию для каталогов.
Также: вы пробовали bash <script>
?