Вопрос или проблема
У меня установлена TrueNAS scale ElectricEel-24.10.1 на виртуальной машине Proxmox. Моя цель заключается в том, чтобы одна из моих общих папок содержала мои репозитории git, которые синхронизированы с моим аккаунтом на GitHub.
Общие папки монтируются в etc/fstab
как:
`//192.168.0.10/ArduinoCode /media/TrueNAS/ArduinoCode cifs credentials=/etc/samba/credentials,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,nounix,vers=3.0 0 0
Когда я пытаюсь клонировать, появляется следующее сообщение:
guy@linuxPc:/media/TrueNAS/ArduinoCode$ git clone https://gitub.com/YYYY/Arduino Cloning into 'Arduino'... error: chmod on /media/TrueNAS/ArduinoCode/Arduino/.git/config.lock failed: Operation not permitted fatal: could not set 'core.filemode' to 'false'
Поскольку я подозреваю, что это связано с проблемой прав собственности, я проверил следующее:
- Когда общая папка была создана, она принадлежала пользователю и группе
root
. guyd
— это пользователь, подключенный на ПК, и определен как пользователь и группа в TrueNAS. Когда я создаю папкуmkdir test
в этой общей папке, она принадлежитroot
drwxrwxrwx 2 root root 0 Jan 10 08:39 test
возможно, это связано с этим?
Буду признателен за любую помощь
Ответ или решение
Ваша проблема с клонированием репозитория Git на TrueNAS Scale, установленной на виртуальной машине Proxmox, скорее всего связана с проблемами прав доступа и владельца файловой системы. Давайте разберем это более подробно и предложим возможные решения.
Диагностика проблемы
-
Ошибки при клонировании:
При попытке клонирования репозитория Git вы получаете сообщение об ошибке:error: chmod on /media/TrueNAS/ArduinoCode/Arduino/.git/config.lock failed: Operation not permitted fatal: could not set 'core.filemode' to 'false'
Это указывает на то, что Git не может изменить права доступа к файлу
config.lock
. Причина может заключаться в том, что у пользователя недостаточно прав на запись в эту директорию. -
Проблемы с владельцем и группой:
Вы заметили, что любые созданные в этой общей папке файлы и директории принадлежатroot
. Это недопустимо, так как пользователь, от имени которого выполняется Git, должен иметь права записи.
Решения
-
Настройка правильного пользователя и группы:
Вы должны убедиться, что монтируемая директория использует правильные UID и GID для доступа. Попробуйте изменить запись в/etc/fstab
следующим образом://192.168.0.10/ArduinoCode /media/TrueNAS/ArduinoCode cifs credentials=/etc/samba/credentials,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,nounix,vers=3.0,uid=1000,gid=1000 0 0
Здесь
uid=1000
иgid=1000
должны быть заменены на актуальные UID и GID вашего пользователя, выполняющего команду Git. -
Перемонтирование файловой системы:
После обновления/etc/fstab
, выполните команду:sudo mount -a
Это перемонтирует все файловые системы и применит изменения, выполненные в файле fstab.
-
Проверка прав и совместимость с Git:
После перемонтирования, проверьте права доступа к директории:ls -la /media/TrueNAS/ArduinoCode
Убедитесь, что ваши изменения применились и файлы/директории принадлежат нужному пользователю.
-
Проверка параметров TrueNAS:
Убедитесь, что на стороне TrueNAS пользовательguyd
настроен с достаточными правами доступа к SMB-шаре. Возможно, есть необходимость настроить ACL (Access Control List) для вашей общедоступной папки для освобождения определенных ограничений.
Заключение
Эти шаги помогут вам разрешить проблему с клонированием репозитория на TrueNAS Scale. Если проблема persistирует, проверьте дополнительно журнал ошибок TrueNAS и Git для более детализированной информации. Удачи!