1. 首页
  2. 系统运维
  3. Linux

CentOS 7服务器安装和配置Samba共享文件服务

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

准备

一台CentOS 7 的系统,比如我的IP是:172.16.10.129。

一台windows 10系统的电脑

确保windows10的工作组和samba的工作组一致,比如我的电脑工作组是WORDGROUP。

net config workstation

微信截图_20190403094722

安装

输入如下命令完成samba的安装。

yum install samba samba-client samba-common

配置

samba的配置文件路径/etc/samba/smb.conf,在修改之前先做个备份(请注意,这是一个好习惯)。

cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak

然后清空smb.conf,cat /dev/null比一条条删除快很多。

cat /dev/null > /etc/samba/smb.conf

匿名配置

输入如下内容到配置文件smb.conf

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
#============================ Share Definitions ============================== 
[Anonymous]
path = /samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no

这个配置会先创建一个任何人可读写的目录anonymouse。

mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service

设置文件夹的权限

cd /samba
chmod -R 0755 anonymous/
chown -R nobody:nobody anonymous/
ls -l anonymous/

如果开启了selinux,输入如下命令已允许SELinux用于samba配置。

chcon -t samba_share_t anonymous/

在windows电脑上测试,确认匿名可读写。

微信截图_20190403100430

安全配置

如果需要对文件夹设置权限,一般我们还需要添加用户认证。

创建组

groupadd smbgrp

添加用户

useradd zhangnq -G smbgrp

设置密码

smbpasswd -a zhangnq

添加需要认证访问的文件夹,配置权限为777,所有人可读写。

mkdir -p /samba/secured
cd /samba
chmod -R 0777 secured/

或者设置权限

chown -R zhangnq:smbgrp secured/

然后再编辑/etc/samba/smb.conf,添加如下内容到文件末尾。

[secured]
path = /samba/secured
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes

重启samba服务

systemctl restart smb.service
systemctl restart nmb.service

在windows电脑上测试,打开secured就会提示输入用户名密码,如下图所示。

微信截图_20190403101340

可能的问题

1、端口不通,无法连接。

如果centos有打开firewalld防火墙,需要添加相关的端口。

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload

2、如何在linux上连接测试。

smbclient //172.16.10.129/secured -U zhangnq

3、xp win2003电脑无法连接samba共享目录。

从samba 4.5开始,ntlm auth参数默认值由“yes”变为“no”。导致默认情况下使用NTLM级别LAN Manager身份验证的客户端不允许登录Samba服务器,受影响的客户端包括Windows XP、Windows2003等。

解决方法(任选一种都可解决):

a. Samba服务器端smb.conf配置文件中添加“ntlm auth = yes”后重启smb服务。

b. Windows XP客户端修改本地安全设置、安全选项、“网络安全:LAN Manager身份验证级别”的值为“仅发送 NTLMv2响应”。

==== end ====

参考链接:

https://www.howtoforge.com/samba-server-installation-and-configuration-on-centos-7

https://blog.csdn.net/u012134780/article/details/85329857

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code