检查是否安装
1 | [root@AndyCentOS7Basic ~]# rpm -qi samba |
安装
如果要测试samba服务,还需要安装一个samba客户端:samba-client1
2[root@AndyCentOS7Basic ~]# yum -y install samba samba-client
...
安装好后,再次查看1
2
3
4
5
6
7
8[root@AndyCentOS7Basic wkb-public]# rpm -qa | grep samba
samba-common-libs-4.6.2-12.el7_4.x86_64
samba-client-libs-4.6.2-12.el7_4.x86_64
samba-libs-4.6.2-12.el7_4.x86_64
samba-client-4.6.2-12.el7_4.x86_64
samba-common-4.6.2-12.el7_4.noarch
samba-common-tools-4.6.2-12.el7_4.x86_64
samba-4.6.2-12.el7_4.x86_64
另外一台电脑,没选择安装 samba-client1
2
3
4
5
6
7
8
9[root@AndyCentOS7Basic ~]# yum -y install samba
...
[root@AndyCentOS7Basic ~]# rpm -qa | grep samba
samba-common-libs-4.6.2-12.el7_4.x86_64
samba-client-libs-4.6.2-12.el7_4.x86_64
samba-libs-4.6.2-12.el7_4.x86_64
samba-4.6.2-12.el7_4.x86_64
samba-common-4.6.2-12.el7_4.noarch
samba-common-tools-4.6.2-12.el7_4.x86_64
配置
1 | [root@AndyCentOS7Basic ~]# cd /etc/samba/ |
写入如下内容1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = no
cups options = raw
map to guest = Bad User
[wkb-public]
path = /opt/wkb-public
public = no
create mask = 0765
writable = yes
valid users = wangkebao
printable = no
#[wkbHome]
# path = /opt/wkb
# public = no
# writable = yes
# valid users = wkb
# printable = no
# create mask = 0765
#[anonymous]
# comment = anonymous
# path = /opt/anonymous
# public = yes
# writeable = yes
# create mask = 0644
设置开机启动
1 | [root@AndyCentOS7Basic ~]# systemctl enable smb |
创建用户
1 | [root@AndyCentOS7Basic samba]# groupadd gsmb |
创建共享目录并设置权限
1 | mkdir -p /opt/wkb-public |
smb 启动、重启等命令
- systemctl start smb # 启动
- systemctl restart smb #重启
- systemctl enable smb #修改为开机启动
- systemctl status smb #查看状态
- 使用 testparm 测试 samba 配置是否正确
备注:win 7 与 win 10 专业版可正常访问,win 10 教育版无法访问
解决办法,参见:windows 10 访问 CentOS 7 的 SMB 共享文件
遇到的操作错误
Failed to add entry for user wangkebao
1 | [root@AndyCentOS7Basic samba]# smbpasswd -a wangkebao |
这是因为没有加相应的系统账号1
2groupadd gsmb
useradd wangkebao -g gsmb -s /sbin/nologin
You need permission to perform this action
进入共享目录,创建文件或文件夹,提示没有权限1
You need permission to perform this action
解决:禁用 SELinux
vim /etc/selinux/config
设置 SELINUX 为:SELINUX=disabled
然后重启服务器
不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接
1 | [Window Title] |
解决
Win+R,调出命令窗口,输入 “net use * /del /y”,终止共享连接
然后,重新访问共享目录,就正常了