Samba服务器设置
Samba服务器设置
Samba,是用来让Linux系列的操作系统与Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做连结的自由软件,最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享(Linux与Linux之间的资源共享更多用NFS实现)。
组成Samba运行的有两个服务,一个是SMB,另一个是NetBIOS。SMB是Samba的核心启动服务,主要负责建立Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问,监听139 TCP端口(增强版SMB协议CIFS直接监听445端口,CIFS不需要NetBIOS协议);而NetBIOS服务是负责解析,提供浏览网络上的共享资源列表,监听UDP端口137和138。
Samba相关配置:
主配置文件:/etc/samba/smb.conf
主程序:nmbd(NetBIOS Name Server Daemon)、smbd(SMB/CIFS Daemon)
Unit文件:smb.service和nmb.service
其中/etc/samba/smb.conf文件常见参数:
全局配置:
[global]
workgroup=MYGROUP #工作组名
server string=Samba Server Version %v #服务器信息介绍
netbios name=MYSERVER #用netbios名来指定服务
interfaces=[interface1 interface2...|address1 address2...] #用于让samba服务监听多个网络接口或IP
hosts allow=[address1 address2...] #指定允许访问的主机IP
log file=/var/log/samba/log.%m #指定日志存放路径,%m为来访的主机名
max log size=50 #定义日志文件最大容量为50K
security=user #设置samba服务的安全认证方式为user
passdb backend=tdbsam #定义用户后台的类型为tdbsam,其他类型还有smbpasswd、ldapsam
load prints=yes #设置是否共享打印机
cups options=raw #打印机选项
其它配置:
[homes]:为每个samba用户定义其是否能够通过samba服务访问自己的家目录
[printers]:定义打印服务
[自定义共享目录]:定义共享的文件系统
常用指令:
comment=STRING:注释
path=/PATH/TO/FILENAME:当前共享所映射的文件系统路径
browseable=YES:是否可浏览,指是否可被所有用户查看
pulibc=YES:是否允许匿名访问
browseable=No:是否公开目录
writable=YES:是否可写
read only=no|yes:是否为只读
write list=/PATH/TO/user_list|USERNAME:拥有写权限的用户列表
directory mask=MASK:新建目录的权限值
force directory mode=MASK:配合directory mask使用,使得目录权限值生效
create mask=MASK:新建文件的权限值
force create mode=MASK:配合create mask使用,使得文件权限值生效
更多参数可通过命令 man smb.conf 查看。
项目实训
一、centos7下samba服务器------匿名共享
1.安装Samba软件包
方法一:
[root@localhost ~]# mount /dev/cdrom /mnt [root@localhost ~]# cd /mnt/Packages [root@localhost Packages]# ls samba* [root@localhost Packages]# rpm -ivh samba-4.8.3-4.el7.x86_64.rpm --nodeps
方法二:
[root@localhost ~]# yum -y install samba
- samba的配置文件是smb.conf,存放在/etc/samba下,配置前建议先做一个备份
[root@localhost ~]# cd /etc/samba [root@localhost samba]# cp -a smb.conf smb.conf.bak
- 配置samba的全局参数,允许匿名访问,需要添加map to guest = bad user一列
[root@localhost samba]# vim /etc/samba/smb.conf
4.配置共享组,共享组主要用来定义需要在网络上共享的文件资源。
参数解析
[share]
comment = 共享描述
path = /share //共享的文件路径
writable = yes //是否可写
browseable = yes //是否可被浏览
public = yes //是否允许匿名访问
- 创建共享目录,上述配置的路径在/目录先,所以需要在/目录下创建,配置需要一致
[root@localhost samba]# mkdir /share [root@localhost samba]# chmod 757 /share [root@localhost samba]# cd /share [root@localhost share]# touch aa.txt [root@localhost share]# ls aa.txt [root@localhost share]# pwd
- 启动服务,并用客户就进行测试,运行\\192.168.137.150
[root@localhost share]# systemctl start smb.service [root@localhost share]# systemctl start nmb.service
在客户端windows地址栏中输入\\192.168.137.150进行测试访问测试
项目二:自定义共享目录(用账号密码访问)
RPM –ivh samba-common-tools-4.8.3-4.el7.x86_64.rpm
1.配置文件/etc/samba/smb.conf的修改
注释掉16行的匿名访问功能字段map to guest = Bad User
[root@samba ~]# vim /etc/samba/smb.conf [shared_dir] comment=shared dir through samba path=/samba_dir writable=yes [root@samba ~]# mkdir /samba_dir //创建共享文件 [root@samba ~]# testparm //校验/etc/samba/smb.conf文件的配置是否正确
2.samba服务默认的验证模式为user,因此需要创建samba用户数据库:
samba帐号必须存在于Linux系统中(/etc/passwd),而其密码却需要单独维护。创建samba用户数据库有专门的命令:pdbedit 和 smbpasswd。
[root@samba ~]# useradd samba_user1 [root@samba ~]# smbpasswd -a samba_user1
- 修改/samba_dir目录的属主和属组
[root@samba ~]# groupadd samba [root@samba ~]# usermod -G samba samba_user1 [root@samba ~]# ll -d /samba_dir [root@samba ~]# chown :samba /samba_dir [root@samba ~]# chmod g+w /samba_dir [root@samba ~]# ll -d /samba_dir
- 启动服务,并用客户就进行测试,运行\\192.168.137.150
[root@localhost share]# systemctl restart smb.service [root@localhost share]# systemctl restart nmb.service
在客户端windows地址栏中输入\\192.168.137.150进行测试访问测试