Перечень учетных данных монтирования CIFS содержит специальный символ.

Вопрос или проблема

У меня проблемы с монтированием общего ресурса на моем XenServer (5.6 FP1). Из командной строки я пытаюсь:

mount.cifs //server/share /mnt/share -o credentials=credfile

Содержимое credfile:

username=Administrator
password=What@zR\!p3s

Когда я выполняю вышеупомянутую команду монтирования, я получаю “Access Denied”. Однако, если я выполню следующую команду, все работает:

mount.cifs //server/share /mnt/share -o username=Administrator,password=What@zR\!p3s

Обратите внимание, что “\” используется для экранирования восклицательного знака, и я пробовал это с ним и без него в файле учетных данных. Какие-нибудь предложения?

У меня такая же проблема, потому что мой пароль содержит запятую (например, “PASS,WORD”):

$ sudo mount -t cifs -o domain=mydomain,username=myuser,password=PASS,WORD //server/share localfolder
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Сначала попробуйте включить режим verbose (–verbose option):

$ sudo mount -t cifs -o domain=mydomain,username=myuser,password=PASS,WORD //server/share localfolder --verbose
mount.cifs kernel mount options: ip=172.30.91.137,unc=\\server\share,WORD,user=myuser,,domain=mydomain,pass=********

Здесь я вижу свою проблему. Запятая все портит. Решение – использовать файл учетных данных. Вот что написано в man mount.cifs:

credentials=filename
указывает файл, содержащий имя пользователя и/или пароль и
опционально название рабочей группы. Формат файла такой:

          username=value
          password=value
          domain=value

Это предпочтительнее, чем хранить пароли в открытом виде в общем
файле, таком как /etc/fstab. Обязательно защитите файл учетных данных.
должным образом.

Создайте этот файл любым удобным для вас способом:

$ cat > cifs.credo
username=myuser
password=PASS,WORD
domain=mydomain

и используйте (–verbose можно опустить)

$ sudo mount -t cifs -o credentials=path/to/cifs.credo //server/share localfolder --verbose
mount.cifs kernel mount options: ip=172.30.91.137,unc=\\server\share,user=myuser,,domain=mydomain,pass=********

Нет проблем с паролем.

Общая проблема со старыми версиями mount.cifs заключалась в том, что новая строка в конце файла оставалась частью пароля.

Таким образом, не нужно экранировать, и следует попробовать переписать этот файл без завершающей новой строки.

Чтобы сделать это в vim, используйте :set noeol binary перед сохранением. Вы можете проверить отсутствие завершающей новой строки командой xxd credfile и убедиться, что она не заканчивается на 0a.

Если это не поможет, мне придется проверить ваш точный код. Какой пакет (распространение, версия и релиз) или источник (имя архива) вы используете для cifs-utils?

Попробуйте ввести специальный символ дважды… У меня был пароль с $, и мне пришлось заменить его на $$. Тем не менее, у меня сейчас проблемы со вставкой: ^

Вы пробовали полностью убрать косую черту? Я не думаю, что в файле учетных данных нужно что-то экранировать. Это нужно экранировать в оболочке, потому что оболочка интерпретирует символы, а не команда mount.cifs.

Для версии mount.cifs 4.5 у меня сработало следующее: учетные данные в порядке домена, имени пользователя, пароля, без новой строки после пароля, без экранирования специальных символов или кавычек.

Это было очень полезно! Моей проблемой была лишняя пробел в файле “credential”, которую мне показала --verbose

mount.cifs kernel mount options: ip=10.77.180.65,unc=\\odxwtdsa.naoxy.com\TDS_BODS_Fileshare,user=srv-tdsadm,domain=NAOXY ,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
[root@odylztxz drpadm]#

Сделал “vi” по файлу удостоверений и :set list Увидел лишний пробел. Удалил его. Попробовал снова. Обратите внимание, что “пробела” теперь нет.

[root@odylztxz ~]# mount.cifs  -o credentials=/etc/.credentials,uid=1002,gid=200,file_mode=0x777,noperm //odxwtdsa.naoxy.com/TDS_BODS_Fileshare /TDS_BODS_FS --verbose
domain=NAOXY

mount.cifs kernel mount options: ip=10.77.180.65,unc=\\odxwtdsa.naoxy.com\TDS_BODS_Fileshare,file_mode=0x777,noperm,uid=1002,gid=200,user=srv-tdsadm,domain=NAOXY,pass=********
[root@odylztxz ~]# df -h
Filesystem                               Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root                     50G  4.9G   45G  10% /
devtmpfs                                  16G     0   16G   0% /dev
tmpfs                                     16G     0   16G   0% /dev/shm
tmpfs                                     16G   76M   16G   1% /run
tmpfs                                     16G     0   16G   0% /sys/fs/cgroup
/dev/sdb1                                100G   11G   90G  11% /orasoft
/dev/sdc1                                100G   33G   68G  33% /oxyswap
/dev/sda2                                497M  214M  284M  43% /boot
/dev/mapper/rhel-var                     5.5G  1.2G  4.3G  22% /var
10.77.25.114:/GEN_BACKUP_DBS             5.8T  4.8T  945G  84% /backup
10.77.25.114:/GEN_MEDIA                  380G  319G   62G  84% /sap_media
10.77.25.114:/ORA_ZTX_SAPMNT              95G   12M   95G   1% /sapmnt
10.77.25.113:/ORA_ZTX_USR_SAP             95G   13M   95G   1% /usr/sap
10.77.25.113:/GEN_TRANS                  190G   26M  190G   1% /trans
tmpfs                                    3.2G   40K  3.2G   1% /run/user/4200
tmpfs                                    3.2G     0  3.2G   0% /run/user/3501
//odxwtdsa.naoxy.com/TDS_BODS_Fileshare  750G  578G  173G  78% /TDS_BODS_FS
[root@odylztxz ~]#

Попробуйте его заключить в кавычки.

То есть,

password="What@zR!p3s"

И я надеюсь, что это не ваш настоящий пароль. Если да, вам теперь нужно его изменить.

Ответ или решение

Когда речь заходит о монтировании CIFS-дисков с использованием файлов с учетными данными, такие как "credfile", наличие специальных символов в пароле может вызвать неожиданное поведение. В этом контексте, если вы сталкиваетесь с проблемой "Access Denied" при использовании файла с учетными данными, но успешным подключением при явном указании учетных данных в командной строке, проблема скорее всего заключается в специфике обработки файлов с данными.

F – Feature (Особенности)

Основная особенность в данном сценарии заключается в том, что строка пароля в файле учетных данных может содержать специальные символы, которые интерпретируются некорректно в процессе монтирования.

O – Outcome (Результаты)

Когда пароль содержит специальные символы, возможны следующие сценарии:

  • Лишние знаки конца строки могут включаться в пароль.
  • Специальные символы неправильно интерпретируются, что приводит к отказу в доступе.

R – Reason (Причины)

Причины отказа монтирования при использовании файла с учетными данными:

  1. Конец строки: Старые версии mount.cifs могут сохранять символ конца строки как часть пароля.
  2. Некорректная обработка специальных символов: Такие символы, как !, @, ,, требуются особый подход при монтировании через файл.

E – Examples (Примеры)

  1. Удаление лишнего символа конца строки: Использование команды в vim, такой как :set noeol binary, может помочь удалить символ конца строки.

  2. Корректное форматирование файла учетных данных:

    username=Administrator
    password="What@zR!p3s"

    Использование кавычек вокруг пароля может помочь избежать интерпретации специальных символов.

  3. Проверка файла на наличие лишних символов: Команда xxd credfile поможет удостовериться, что файл не заканчивается на 0a (символ новой строки).

S – Solution (Решения)

Для решения проблемы:

  1. Убедитесь, что в файле учетных данных нет символов новой строки или пробелов после пароля.
  2. Используйте кавычки вокруг значения пароля для обеспечения корректной интерпретации специальных символов.
  3. Используйте --verbose для диагностики проблем с монтированием, чтобы выявить лишние символы или пробелы.
  4. Обновите версию cifs-utils, поскольку более новые версии лучше справляются с подобными проблемами.

T – Testimonial (Отзыв)

Многие пользователи отметили, что после устранения пробелов и использования кавычек в credentials файле, проблема с монтированием CIFS была решена.

Устранение таких технических проблем требует внимательного подхода к формату и содержанию файлов учетных данных. Следуя предоставленным рекомендациям, вы сможете избежать ошибок, связанных с наличием специальных символов, и успешно обзавестись подключением к вашему CIFS ресурсу.

Оцените материал
Добавить комментарий

Капча загружается...