Dell Unity: проблемы с интерфейсом командной строки UEMCLI со специальными символами в пароле администратора
Summary: При использовании UEMCLI в операционных системах Linux или Microsoft некоторые специальные символы в паролях могут интерпретироваться операционной системой, а не передаваться как часть пароля. Такое поведение является ожидаемым и определяется операционной системой. Инструкции по поддерживаемым специальным символам и экранированию символов см. в документации по операционной системе. ...
Symptoms
UEMCLI В системах VNXe или Dell Unity под управлением операционных систем Linux или Microsoft некоторые специальные символы в паролях могут интерпретироваться операционной системой вместо того, чтобы передаваться как часть строки пароля.
$ символ в Linux).
[user@localhost ~]$ uemcli -d <IP> -u linuxtest -p xRz4bJH$Wxv /sys/general show
Storage system address: <IP>
Storage system port: 443
HTTPS connection
Operation failed. Error code: 0x6000001
You do not have access to perform the requested operation. (Error Code:0x6000001)
$ Символ не интерпретируется операционной системой по-разному. Однако двойные кавычки (") обрабатываются как специальные символы. Если пароль содержит двойные кавычки и не экранирован должным образом, UEMCLI может не возвращать ошибку аутентификации. Вместо этого команда может отображать UEMCLI help, а не ожидаемый вывод команды.
C:\Users\user>uemcli -d <IP> -u microsofttest -p Pass"word123! /sys/general show
[Get help on client options]
uemcli -help {CMDHELP | CMD | -upload | -download |
-version | -saveUser | -removeUser | -removeAllUsers |
-default | -certList | -certDel | -certClear |
-certImport}Cause
Некоторые символы имеют особое значение для операционной системы и могут интерпретироваться как синтаксис командной строки, а не как часть пароля. В результате пароль передан UEMCLI Может отличаться от введенного пользователем пароля.
Такое поведение является ожидаемым и не является дефектом UEMCLI или Unisphere. Сведения об использовании или экранировании специальных символов в аргументах командной строки см. в документации, предоставленной поставщиком операционной системы.
Resolution
-securePassword вместо параметра -p при выполнении команд UEMCLI. В строке -securePassword Запрашивает пароль в интерактивном режиме, не позволяя операционной системе интерпретировать специальные символы и предотвращая отображение пароля на экране и запись в журнале команд или журналах.
[user@localhost ~]$ uemcli -d <IP> -u linuxtest -securePassword /sys/general show
Password:
Storage system address: <IP>
Storage system port: 443
HTTPS connection
1: System name = Unity Array
Model = Unity 300
Platform type = EMC Storage System
Product serial number = CKM00161XXXXXX
Auto failback = on
Health state = Major failure (20)
если UEMCLI Убедитесь, что все специальные символы в паролях правильно экранированы в соответствии с требованиями командной строки операционной системы. Распространенный метод заключается в том, чтобы добавить к специальным символам префикс с обратной косой чертой (\), что может помочь предотвратить их интерпретацию оболочкой.
В Linux заключайте пароль в одинарные кавычки и экранируйте все специальные символы с помощью обратной косой черты. Использование одних кавычек может быть недостаточным для всех специальных символов.
Пример:
Пароль, заключенный в одинарные кавычки с экранированием специального символа; команда выполняется успешно:
[user@localhost ~]$ uemcli -d <IP> -u linuxtest -p 'xRz4bJH\$Wxv' /sys/general show
Storage system address: <IP>
Storage system port: 443
HTTPS connection
1: System name = Unity Array
Model = Unity 300
Platform type = EMC Storage System
Product serial number = CKM00161XXXXXX
Auto failback = on
Health state = Major failure (20)
Заключено в одинарные кавычки без экранирования, команда завершается сбоем:
[user@localhost ~]$ uemcli -d <IP> -u linuxtest -p 'xRz4bJH$Wxv' /sys/general show
Storage system address: <IP>
Storage system port: 443
HTTPS connection
Operation failed. Error code: 0x6000001
You do not have access to perform the requested operation. (Error Code:0x6000001)
В операционных системах Microsoft Windows специальные символы, влияющие на синтаксический анализ команд, должны быть экранированы, чтобы гарантировать их правильную передачу в UEMCLI. Это можно сделать, поместив обратную косую черту (\) перед символом.
Например, если пароль содержит двойные кавычки ("), кавычки должны быть экранированы обратной косой чертой. Это не позволяет интерпретатору команд рассматривать его как синтаксис и позволяет правильно обработать пароль.
Пример:
Двойные кавычки экранированы обратной косой чертой; команда выполняется успешно:
C:\Users\user>uemcli -d <IP> -u microsofttest -p Pass\"word123! /sys/general show
Storage system address: <IP>
Storage system port: 443
HTTPS connection
1: System name = Unity Array
Model = Unity 300
Platform type = EMC Storage System
Product serial number = CKM00161XXXXXX
Auto failback = on
Health state = Major failure (2)