- 文章阅读+操作时间在5分钟左右,耐心看可以节约你们找废料的时间,看完相信可以解决你们的问题!!!!
- 项目上遇到需要自动挂载windows共享盘到linux系统中,由于windows密码有英文逗号(,),被linux识别成了参数分隔符,在网上找了很多办法都不行,后来通过这种方式完美解决,linux系统是centos8.4
- 如果完美解决,麻烦点个赞呗~
要在Linux开机时自动挂载Windows共享文件夹,同时处理具有特殊字符的Windows账户密码,你可以采取以下步骤:
- 创建一个凭证文件:为保持密码的安全性,最好将Windows共享的用户名和密码保存在一个只有root权限能访问的文件中,例如
/etc/cifs-credentials
,并确保它的权限设置为仅root可读:
sudo touch /etc/cifs-credentials
sudo chmod 600 /etc/cifs-credentials
使用文本编辑器编辑该文件, 如果密码中包含特殊字符,直接在文件中输入即可(无需转义),写入用户名(administrator)和密码(123456,abcde):
username=administrator
password=123456,abcde
-
编辑
/etc/fstab
文件:打开/etc/fstab
文件,在文件末尾添加一行,以包含挂载信息。 -
使用你刚才创建的凭证文件进行挂载,而不是在
fstab
文件中直接写明密码,添加的信息可能如下://10.9.158.77/share /mnt/share cifs credentials=/etc/cifs-credentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
//10.9.158.77/share
是Windows共享的路径,/mnt/share
是Linux上的挂载点(请根据实际情况修改这些路径),credentials=/etc/cifs-credentials
指向前面创建的凭证文件。iocharset=utf8
设置字符编码支持UTF-8,file_mode=0777
和dir_mode=0777
设置文件和目录的权限,根据需要可以修改这些值。最后两个数字
0 0
是dump
和fsck
的选项,通常对于CIFS共享设置为0
。 -
创建挂载点:如果挂载点目录(在这个例子中是
/mnt/share
)不存在,需要创建它:sudo mkdir -p /mnt/share
-
测试挂载:在实际将其添加到
/etc/fstab
之前,可以输入mount -a
手动测试挂载,这个命令会尝试挂载/etc/fstab
中的所有文件系统。检查是否有任何错误,并验证挂载是否成功,最后可以输入
df-h
查看是否成功:[root@ ~]# sudo mount -a [root@ ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 9.7M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/mapper/cl-root 70G 5.5G 65G 8% / /dev/mapper/cl-data 800G 5.7G 795G 1% /data /dev/mapper/cl-home 500G 3.9G 496G 1% /home /dev/sda1 200G 1.7G 199G 1% /boot //10.9.158.77/share 14T 82G 13T 1% /mnt/share tmpfs 3.2G 1.2M 3.2G 1% /run/user/42 tmpfs 3.2G 0 3.2G 0% /run/user/0 [root@rx ~]#
-
重新启动和验证:重新启动Linux系统,以测试开机的时候共享是否自动挂载成功:
sudo reboot
END END END 完成这些步骤后,每次Linux开机时会自动尝试挂载Windows共享文件夹。
注: 记得每次更改密码后,也要更新 /etc/cifs-credentials
文件中的相关信息。