Вопрос или проблема
Я только что перенес старый сервер на новую машину. Теперь я переношу свою старую конфигурацию, ключевой особенностью которой было монтирование удалённого каталога на моём сервере. Раньше это работало прекрасно, но теперь у меня возникла небольшая проблема.
Мой файл монтирования systemd на старой машине был таким:
[Unit]
Description=монтирование папки документов Nas
Requires=awainetworkformount.service
After=awainetworkformount.service
[Mount]
What=//192.168.1.4/document
Where=/mnt/NAS.Document
Options=credentials=/etc/systemd.cred.Nas,uid=1000,gid=1000,rw
Type=cifs
[Install]
WantedBy=multi-user.target
Мой файл с учетными данными выглядит так:
username=Pve1
password=password1234
И его права установлены на 600.
Но это не работает, оставляя меня с этой проблемой:
Nov 28 00:03:57 myserv systemd[1]: Монтирование папки документов Nas...
Nov 28 00:03:57 myserv mount[15457]: mount: /mnt/NAS.Document: не удается смонтировать //192.168.1.4/document в режиме только для чтения.
Nov 28 00:03:57 myserv systemd[1]: mnt-NAS.Document.mount: Процесс монтирования завершился, код=выход, статус=32/n/a
Nov 28 00:03:57 myserv systemd[1]: mnt-NAS.Document.mount: Ошибка с результатом 'exit-code'.
Nov 28 00:03:57 myserv systemd[1]: Не удалось смонтировать папку документов Nas.
Я нашел это временное решение, которое работает, но выставляет мои учетные данные напоказ, заставляя меня чувствовать себя более уязвимым, чем раньше.
[Unit]
Description=монтирование папки документов Nas
Requires=awainetworkformount.service
After=awainetworkformount.service
[Mount]
What=//192.168.1.4/document
Where=/mnt/NAS.Document
Options=username=Pve1,password=password1234,uid=1000,gid=1000,rw
Type=cifs
[Install]
WantedBy=multi-user.target
Ответ или решение
Проблема, с которой вы столкнулись при попытке монтирования удаленной директории с использованием файла учетных данных в systemd, может быть связана с несколькими факторами, включая формат файла, его права доступа и параметры монтирования. Рассмотрим подробно, почему монтирование происходит корректно при использовании комбинации имени пользователя и пароля, но не работает с файлом учетных данных.
1. Проверка формата файла учетных данных
Файл учетных данных должен иметь определенную структуру и не содержать лишних пробелов или символов. Убедитесь, что содержимое файла /etc/systemd.cred.Nas
записано в правильном формате:
username=Pve1
password=password1234
Используйте текстовый редактор, чтобы открыть файл и проверить, нет ли неявных символов или пробелов в начале или в конце строк.
2. Проверка прав доступа к файлу
Вы упомянули, что права доступа к файлу установлены на 600, что является правильной настройкой. Здесь важно, чтобы владелец файла соответствовал пользователю, под которым работает systemd. Проверьте владельца файла следующим образом:
ls -l /etc/systemd.cred.Nas
Если файл принадлежит другому пользователю, измените владельца на root, поскольку systemd запускается от имени этого пользователя:
sudo chown root:root /etc/systemd.cred.Nas
3. Проверка параметров монтирования
Если файл учетных данных правильно настроен, а права доступа правильные, проверьте параметры монтирования в вашем конфигурационном файле. Например, параметры в секции [Mount]
должны быть указаны в соответствии с ожидаемым форматом.
4. Логи и диагностика ошибок
Ошибка при монтировании (mount: /mnt/NAS.Document: cannot mount //192.168.1.4/document read-only.
) может указывать на проблему с доступом к удаленному ресурсу или на то, что CIFS-клиент не может использовать файл учетных данных. Чтобы получить более подробную информацию о происходящем, просмотрите системные логи:
journalctl -u mnt-NAS.Document.mount
Это может предоставить дополнительную информацию о том, почему монтирование не удалось.
5. Команды для тестирования
Постарайтесь также протестировать монтирование вручную, используя команду mount
с параметром -o
. Это поможет понять, возникает ли ошибка из-за неверных параметров. Попробуйте следующие команды:
sudo mount -t cifs //192.168.1.4/document /mnt/NAS.Document -o credentials=/etc/systemd.cred.Nas,uid=1000,gid=1000,rw
Если эта команда завершится успешно, значит проблема, скорее всего, связана с конфигурацией systemd.
Заключение
Если после проверки всех описанных шагов проблема все еще сохраняется, возможно, стоит рассмотреть более детальное изучение параметров CIFS и конфигурации сетевой папки на удаленном сервере. Не забывайте следить за обновлениями системы и проверять официальную документацию для получения обновленных рекомендаций по использованию systemd с CIFS.
Эти шаги должны помочь вам наладить монтирование удаленной директории с использованием файла учетных данных в systemd, при этом сохранив безопасность ваших учетных данных.