麒麟桌面系统配置samba共享
1. Samba 介绍
- samba 守护进程
smbd:提供对服务端文件、打印资源的共享访问,使用139、445端口。
nmbd:提供基于NetBIOS主机名称的解析,使用137、138端口。
2. 服务端配置
2.1. 创建共享共享目录
2.1.1. Kylin-Desktop-V10
前提条件:共享目录的属主、属组都为当前用户,且目录权限为777。
#注意将username替换为当前的用户名
sudo chown -R username.username ./共享目录
sudo chmod -R 777 ./共享目录
操作步骤:选中文件夹,右击属性,选择共享选项卡,勾选共享此文件夹,创建共享。
配置文件目录:/var/lib/samba/usershares/
2.1.2. Kylin-Desktop-V10-SP1
前提条件:共享目录的属主、属组都为当前用户,且目录权限为777。
#注意将username替换为当前的用户名
sudo chown -R username.username ./共享目录
sudo chmod -R 777 ./共享目录
操作步骤:选中文件夹,右击属性,选择共享选项卡,勾选共享此文件夹,取消只读,确定。
配置文件目录:/var/lib/samba/usershares/
2.1.3. 其他linux系统
- 请参考其他博客。
2.1.4. Windows系统
-
请参考其他博客。
-
下面是Windows各版本使用的SMB协议版本。
SMB2_02: Windows Vista
SMB2_10: Windows 7
SMB2_22: early Windows 8
SMB2_24: Windows 8 beta
SMB3_00: Windows 8
SMB3_02: Windows 8.1
SMB3_10: early Windows 10
SMB3_11: Windows 10
2.2. 创建samba用户
#创建的samba用户必须是系统用户,可以直接使用已有的系统用户,也可以新建系统用户后再创建samba用户。
#可以将samba用户的密码设置成和系统用户不一致。
sudo smbpasswd -a kylin
sudo systemctl restart smbd.service
smbpasswd 命令的用法
smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
smbpasswd -d 冻结用户,就是这个用户不能在登录了
smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
smbpasswd -n 把用户的密码设置成空,要在global中写入 null passwords -true
smbpasswd -x 删除用户
pdbedit 命令用法
pdbedit –a username 新建Samba账户。
pdbedit –x username 删除Samba账户。
pdbedit –L 列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv Samba用户列表的详细信息。
pdbedit –c “[D]” –u username 停该Samba用户的账号。
pdbedit –c “[]” –u username 恢复该Samba用户的账号。
3. 客户端配置
3.1. 访问共享目录
- 文件管理器访问
smb://IP
- 终端访问
#查看服务端共享目录
smbclient -L //IP -U username
#终端访问服务端共享目录
smbclient //IP/共享目录 -U username
3.2. 设置开机自动挂载
- 新建挂载目录/data/myshare
sudo mkdir -p /data/myshare
sudo chmod -R 777 /data/myshare
- 修改/etc/fstab
在fstab文件末尾添加一行,写入下面的内容。可以选择使用vim或者pluma编辑,但是必须要用sudo权限才能修改这个文件。
//IP/共享目录/ /data/myshare cifs defaults,username=user,password=qwer1234,uid=1000,gid=1000,iocharset=utf8,vers=2.0,x-gvfs-show,_netdev 0 0
需要替换的参数说明如下,请根据现场环境自行修改。
IP:服务端IP地址。
共享目录:共享目录名称。
username:服务端创建的samba用户名。
password:服务端创建的samba用户密码。
uid:当前登录用户的标识,可通过id命令查看。
gid:当前登录用户的组标识,可通过id命令查看。
iocharset:指定挂载文件的字符集。
vers:指定使用的samba协议版本。
x-gvfs-show:在图形化界面显示挂载目录。
_netdev:表示挂载之前必须确保网络设备已经启动并配置完毕。
如果不会使用vim或者pluma编辑文件,则可以使用下面的sed命令直接修改/etc/fstab文件。同上,还是要根据现场情况修改各项参数。
sudo sed -i '$a\/\/IP\/共享目录\/\t/data/myshare\tcifs\tdefaults,username=user,password=qwer1234,uid=1000,gid=1000,iocharset=utf8,vers=2.0,_netdev,x-gvfs-show\t0 0' /etc/fstab
- 创建定时任务
部分机器开机过程中可能会出现先挂载/etc/fstab中的内容,然后才启动网络服务。但是samba服务是依赖于网络服务的,所以会出现开机后共享目录挂载失败的情况。此时我们只需要创建一个定时任务,让机器重启后重新挂载一遍/etc/fstab中的内容即可。
sudo sed -i '$a\@reboot mount -a' /etc/crontab
- 验证
执行下面的命令。如果能在文件管理器中看到共享目录,那就表示挂载成功了,重启机器也会自动挂载共享目录。如果执行命令的过程中出现报错,则需要检查/etc/fstab中添加的内容是否正确。
sudo mount -a