CentOS 7使用samba共享文件夹的完整步骤
前言
Samba是在Linux系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统,打印机及其他资源。
比如我想共享/home/samba这个文件夹给其他计算机使用。
安装samba
yuminstall-ysamba
创建samba用户
useraddsamba
修改samba配置
配置文件是/etc/samba/smb.conf
#Seesmb.conf.exampleforamoredetailedconfigfileor #readthesmb.confmanpage. #Run'testparm'toverifytheconfigiscorrectafter #youmodifiedit. [global] workgroup=SAMBA#samba的工作组,设置成Windows的工作组 security=user#安全选项,可以是share|user|server|domain,安全级别递增 passdbbackend=tdbsam printing=cups printcapname=cups loadprinters=yes cupsoptions=raw [homes]#共享默认会将用户的主目录共享,这是不安全的,可以将其注释 comment=HomeDirectories validusers=%S,%D%w%S browseable=No readonly=No inheritacls=Yes [printers]#打印机共享 comment=AllPrinters path=/var/tmp printable=Yes createmask=0600 browseable=No [print$] comment=PrinterDrivers path=/var/lib/samba/drivers writelist=root createmask=0664 directorymask=0775 [rootdir]#自定义的共享文件夹 comment=SambaRoot path=/home/samba/#共享的路径 readonly=No
注意,自己修改时去掉#后面的备注
添加Samba用户
添加刚刚创建的samba用户,根据提示设置相应的密码
smbpasswd-asamba
smbpasswd命令是用于维护Samba服务器的用户帐号的,具体如下:
//添加Samba用户帐号 #smbpasswd-asambauser //禁用Samba用户帐号 #smbpasswd-dsambauser //启用Samba用户帐号 #smbpasswd-esambauser //删除Samba用户帐号 #smbpasswd-xsambauser
启动Samba服务
启动、停止、查看相关命令
systemctlstartsmb systemctlstopsmb systemctlstatussmb
Windows访问共享目录
直接Win+R,在运行界面输入\192.168.1.20,也就是你的Linux主机地址,会弹出用户名密码输入界面,输入刚刚设置的用户名密码就可以访问。
常见问题
如果Windows下访问Linux下共享目录,提示没有权限
- 确保Linux下防火墙关闭或者是开放共享目录权限
- 确保Samba服务器配置文件smb.conf设置没有问题
- 确保setlinux关闭,可以用setenforce0命令执行;默认SELinux禁止网络上对Samba服务器上的共享目录进行写操作
Samb还需要开放下面四个端口
UDP137、UDP138、TCP139、TCP445