使用“mount”时密码内的逗号

Jer*_*Qiu 3 linux samba mount

需要从 Windows 挂载特定目录到Linux

mount -t cifs -o username=somebody password=12,34 //192.168.1.3/share /mnt/server
Run Code Online (Sandbox Code Playgroud)

请注意,密码中有一个逗号,这Shell会将其误认为是分隔符。

遇到这种情况怎么办?

谢谢!

Tsy*_*rev 5

man mount.cifs 中password选项说明明确表示,您不能在命令行中使用包含逗号的密码:

请注意,包含分隔符(即逗号“,”)的密码将无法在命令行上正确解析。但是,在 PASSWD 环境变量中或通过凭证文件(见下文)或在密码提示处输入的相同密码将被正确读取。

您可以在与以下相同的行中设置 PASSWD 变量mount

PASSWD=12,34 mount -t cifs -o username=somebody //192.168.1.3/share /mnt/server
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用凭据文件,如本手册中所述。


顺便说一句,错误解释逗号的不是shell。其实,username并且password都是子选项-o选项,这些子选项应该用逗号由被正确解析分隔程序(安装)本身:

mount -t cifs -o username=<username>,password=<password> ...
Run Code Online (Sandbox Code Playgroud)

而这样的子选项机制无法解析子选项值中的逗号。