目录
前言
Samba是一种在Linux和UNIX系统上实现SMB协议的免费软件,它允许局域网内的计算机之间共享文件和打印机资源。samba服务不仅可以用于Linux与Linux之间的资源共享,还能用于Linux与Window之间的资源共享,这也是samba服务和nfs服务的主要区别之一。
配置文件
/etc/samba/smb.conf
samba服务器的配置
为用户建立samba目录
这里我们演示为一个公司提供samba服务,samba目录为company
其中,有公共目录public和部门各自的目录m1和m2
部门m1的员工有s1和ss1
部门m2的员工有s2和ss2
总经理zjl有访问所有目录的权利,而各部门员工只能访问各自部门的目录,公共目录所有人可访问
mkdir -p /company/m1
mkdir -p /company/m2
mkdir -p /company/public
下载samba服务
yum install -y samba samba-client
配置防火墙
允许samba服务通过防火墙(Selinux机制一定要关闭)
firewall-cmd --add-service=samba --zone=public --permanent
systemctl restart firewalld
setenforce 0
添加samba用户
smbpasswd -a 用户名
查看samba用户
pdbedit -L
设置配置文件
vim /etc/samba/smb.conf
[global] //全局配置部分
workgroup = SAMBA //设置工作组名称为SAMBA
security = user //设置安全模式为用户级别
passdb backend = tdbsam //设置密码数据库后端为TDB SAM
printing = cups //设置打印服务为CUPS
printcap name = cups //设置打印服务的打印机名称为cups
load printers = yes //加载打印机
cups options = raw //设置CUPS选项为raw
map to guest = Bad User //允许匿名用户访问,并将其映射到Bad User。
[homes] //共享名称为homes
comment = Home Directories //注释说明这是家目录共享
valid users = %S, %D%w%S //设置有效用户为所有系统用户和他们的家目录
browseable = No //不允许浏览共享内容
read only = No //允许读写操作
inherit acls = Yes //继承访问控制列表(ACLs)
[printers] //共享名称为printers
comment = All Printers //注释说明这是所有打印机的共享
path = /var/tmp //设置共享路径为/var/tmp
printable = Yes //允许打印操作
create mask = 0600 //设置创建文件的权限掩码为0600(只有所有者有读写权限)
browseable = No //不允许浏览共享内容
[print$] //这也是关于打印机的共享(打印机驱动程序)
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
以上内容,除了[global]以外,基本不用修改,默认即可。
以下内容,则需要根据自己的需求,自己添加:
[public] //共享名
comment = public //对共享的描述,可以自定义为任何文本,方便管理员识别和管理
path = /company/public //共享文件在服务器上的实际位置
public = yes //允许匿名访问
[m1]
comment = m1
path = /company/m1
guest ok = no //不允许匿名访问
writable = yes //允许写入
valid users = @m1,zjl //m1组用户和用户zjl具有访问权限
[m2]
comment = m2
path = /company/m2
guest ok = no
writable = yes
valid users = @m2,zjl
配置文件权限
共享文件的默认权限如下图所示,需要根据实际需求手动修改
chown :m1 /company/m1
chown :m2 /company/m2
setfacl -m u:zjl:r-x /company/m1
setfacl -m u:zjl:r-x /company/m2
权限设置好后,查看如下:
重启服务
systemctl restart amb
systemctl restart nmb
访问测试
Linux客户端
查看服务端的共享文件
smbclient -L 服务端IP
访问服务端的共享文件
smbclient -U samba用户名 //服务端IP/共享文件名
windows客户端
在资源管理器中输入:
\\服务端IP\共享文件名