Оказывается, я просто искал не в том месте - я забыл, что для учетной записи на хосте Windows должны быть установлены правильные права доступа к общей папке; он имел только содержимое папок Read & execute
, Write
и List folder contents
. Doh! Добавление Modify
решило проблему. Так что ничего, кроме глупой ошибки - но я также узнал немного больше о синтаксисе cifs и fstab
и выяснил, как монтировать как скромный пользователь, позволяя точкам монтирования находиться в моей папке /home/user
. Последняя строка монтирования в моем fstab выглядит следующим образом (мои значения заменены на [tokens]):
//[server]/[share] /home/[user]/[folder] cifs credentials=/home/[user]/.config/samba/.[server],uid=[user],gid=[group] 0 0
Так что вам нужно только установить uid
и gid
для пользователя и группы, которым вы хотите владеть файлами на общем ресурсе после монтирования - больше ничего не нужно. Я также поместил необходимые учетные данные пользователя Windows в отдельный файл под моим каталогом .config и выполнил chmod 400
чтобы другие пользователи не могли ее прочитать.
Потребовалось на удивление много времени, чтобы разобраться во всем этом, поскольку существует миллион аргументов для использования с cif, и многие, кажется, неправильно их поняли - так много людей рекомендуют использовать file_mode
/dir_mode
777 (что звучит для меня очень плохой идеей) и перец с ненужными рассуждениями типа nounix
noperm
rw
iocharset
и noacl
- ни один из которых необходимо , чтобы сделать эту работу. Так что, хотя моя проблема была вызвана простой ошибкой, я оставлю вопрос (и этот ответ) здесь; надеюсь, кто-то найдет это полезным!
Редактировать: Из- за ошибки в реализации CIFS в Samba, необходимо также добавить опцию nobrl
если вы собираетесь запускать базы данных SQLite на общем ресурсе. По сути, текущий клиент Samba cifs Linux не может обработать способ, которым SQLite блокирует файл базы данных. Не очень удачное решение и почти наверняка плохая идея в многопользовательской среде, но так как в моем случае это однопользовательский ресурс, размещенный на той же машине, что и клиент (что практически исключает задержки в сети), я собираюсь катись с этим.
nobrl
Не отправляйте запросы блокировки байтового диапазона на сервер. Это необходимо для некоторых приложений, которые нарушают обязательную блокировку диапазона байтов в стиле cifs (и большинство серверов cifs еще не поддерживают запрашивающие консультативные блокировки диапазона байтов).
Запись fstab теперь выглядит так:
//[server]/[share] /home/[user]/[folder] cifs nobrl,credentials=/home/[user]/.config/samba/.[server],uid=[user],gid=[group] 0 0