如题
检查是否安装 1 2 3 4 [root@AndyCentOS7Basic ~]# rpm -qi samba package samba is not installed [root@AndyCentOS7Basic ~]# rpm -qa | grep samba [root@AndyCentOS7Basic ~]#
安装 如果要测试samba服务,还需要安装一个samba客户端:samba-client
1 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-client
1 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 2 3 4 5 6 7 8 9 [root@AndyCentOS7Basic ~]# cd /etc/samba/ [root@AndyCentOS7Basic samba]# ll total 20 -rw-r--r-- 1 root root 20 Nov 28 00:21 lmhosts -rw-r--r-- 1 root root 667 Nov 28 00:21 smb.conf -rw-r--r-- 1 root root 11327 Nov 28 00:21 smb.conf.example [root@AndyCentOS7Basic samba]# mv smb.conf smb.conf.origin [root@AndyCentOS7Basic samba]# vim smb.conf
写入如下内容
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 2 [root@AndyCentOS7Basic ~]# systemctl enable smb Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
创建用户 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@AndyCentOS7Basic samba]# groupadd gsmb [root@AndyCentOS7Basic samba]# useradd wangkebao -g gsmb -s /sbin/nologin [root@AndyCentOS7Basic samba]# smbpasswd -a wangkebao New SMB password: Retype new SMB password: Added user wangkebao. # 指定主目录的方式创建另外一个用户 这种方式创建的用户,设置共享目录后,打开有三个点开头的隐藏文件,上面的方式(wangkebao)就没有,推荐上面的创建用户的方式 [root@AndyCentOS7Basic samba]# useradd -g gsmb -d /opt/wkb -s /sbin/nologin wkb [root@AndyCentOS7Basic samba]# smbpasswd -a wkb New SMB password:wkb Retype new SMB password:wkb
创建共享目录并设置权限 1 2 3 4 5 6 7 mkdir -p /opt/wkb-public cd /opt/ chown wangkebao:gsmb -R wkb-public/ chmod 777 wkb-public mkdir -p /opt/anonymous chown nobody:nobody anonymous/
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 2 3 4 [root@AndyCentOS7Basic samba]# smbpasswd -a wangkebao New SMB password: Retype new SMB password: Failed to add entry for user wangkebao
这是因为没有加相应的系统账号
1 2 groupadd gsmb useradd wangkebao -g gsmb -s /sbin/nologin
进入共享目录,创建文件或文件夹,提示没有权限
1 You need permission to perform this action
解决:禁用 SELinux vim /etc/selinux/config 设置 SELINUX 为:SELINUX=disabled 然后重启服务器
不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接 1 2 3 4 5 6 7 8 9 10 [Window Title] 打开文件夹 [Content] \\192.168.0.89\wkb-public 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次。 [确定]
解决 Win+R,调出命令窗口,输入 “net use * /del /y”,终止共享连接
然后,重新访问共享目录,就正常了