ubuntu实现开机自动挂载SMB共享的常用方法
将 SMB 共享挂载信息写入 /etc/fstab 是实现开机自动挂载的常用方法。不过,直接将用户名和密码明文写入该文件存在极大的安全隐患。为了保障系统安全并确保挂载稳定,建议采用以下优化方案:
1. 使用凭据文件替代明文密码
将账号密码保存在一个独立的凭据文件中,并严格限制该文件的读取权限,可以有效避免密码泄露。
创建凭据文件:
sudo nano /etc/samba/credentials在文件中写入以下内容:
username=username
password=password123保存后,立即修改文件权限,确保仅 root 用户可读:
sudo chmod 600 /etc/samba/credentials2. 完善 /etc/fstab 配置
在编辑 /etc/fstab 时,除了使用凭据文件,还需要注意以下关键参数:
_netdev:网络共享依赖网络连接。添加此参数可确保系统在网络服务完全就绪后才尝试挂载,避免因网络未通导致开机卡顿或启动失败。
vers=3.0:显式指定 SMB 协议版本,防止因客户端与服务端协议握手不匹配导致挂载失败。
iocharset=utf8:确保中文文件名能够正常显示,避免乱码。
编辑 fstab 文件:
sudo nano /etc/fstab在文件末尾添加以下单行配置(替换原有的明文密码配置):
//192.168.1.115/share_data /mnt/smb_data cifs credentials=/etc/samba/credentials,uid=1001,gid=1001,dir_mode=0755,file_mode=0755,vers=3.0,iocharset=utf8,_netdev 0 03. 验证配置并生效
在重启系统之前,务必先测试配置是否正确,以免因语法错误导致系统异常。
测试挂载:执行 sudo mount -a。如果没有任何报错输出,说明配置语法正确且挂载成功。
验证状态:执行 df -h | grep ftp_data 或 mount | grep cifs,确认共享目录已正确挂载。
重载配置:执行 sudo systemctl daemon-reload,确保 systemd 能够正确识别新的挂载项。
完成以上步骤后,该 SMB 共享目录即可在系统重启后安全、稳定地自动挂载。