Dell Unity: UEMCLI Issues with Special Characters in the Admin Password
Summary: When using UEMCLI on Linux or Microsoft operating systems, certain special characters in passwords may be interpreted by the operating system rather than passed as part of the password. This behavior is expected and is determined by the operating system; refer to the operating system documentation for guidance on supported special characters and character escaping. ...
Symptoms
UEMCLI with VNXe or Dell Unity systems on Linux or Microsoft operating systems, certain special characters in passwords may be interpreted by the operating system instead of being passed as part of the password string.
$ character on 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)
$ character is not interpreted differently by the operating system. However, double quotation marks (") are treated as special characters. If a password contains a double quote and is not properly escaped, UEMCLI may not return an authentication error. Instead, the command can display the UEMCLI help syntax rather than the expected command output.
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
Some characters have special meaning to the operating system and may be interpreted as command-line syntax rather than as part of the password. As a result, the password passed to UEMCLI may differ from the password entered by the user.
This behavior is expected and is not a defect in UEMCLI or Unisphere. For information on how to use or escape special characters in command-line arguments, refer to the documentation provided by the operating system vendor.
Resolution
-securePassword option instead of the -p option when running UEMCLI commands. The -securePassword option prompts for the password interactively, preventing the operating system from interpreting special characters and ensuring that the password is not displayed on the screen or recorded in command history or logs.
[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)
If UEMCLI is used in scripts, ensure that any special characters in passwords are properly escaped according to the operating system's command-line requirements. A common method is to prefix special characters with a backslash (\), which can help prevent them from being interpreted by the shell.
On Linux, enclose the password in single quotes and escape any special characters with a backslash. Using single quotes alone may not be sufficient for all special characters.
Example:
Password enclosed in single quotes with the special character escaped; command succeeds:
[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)
Enclosed in single quotes with no escape, command fails:
[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)
On Microsoft Windows operating systems, special characters that affect command parsing must be escaped to ensure they are passed correctly to UEMCLI. This can be done by placing a backslash (\) before the character.
For example, if the password contains a double quotation mark ("), the quotation mark should be escaped with a backslash. This prevents the command interpreter from treating it as syntax and allows the password to be processed correctly.
Example:
Double quotation mark escaped with a backslash; command succeeds:
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)