Samba服务 - SMB协议
Samba协议基础
在NetBIOS 出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议, Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们Lan Manager和Windows NT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。
随着 Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Inter net上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。
SAMBA配置文件
Samba的配置文件为/etc/samba/smb.conf
配置文件分为三个部分:
- [global] 定义全局性配置(配置samba服务的相关参数)
- [homes] 定义对用户家目录的共享配置(其实在默认情况下不做任何设置,直接启用服务我们就可以通过smb协议访问所有用户的家目录)
- [printers] 定义打印机共享配置
browseable = 可浏览(设置共享是否可游览,如果是no表示隐藏,通过ip+共享名进行访问)
writable = yes 可写,还要看目录权限 rw
write list = maomao,@GROUPNAME,+GROUPNAME
read only = yes 只读设置 ro
create mask = 0644 客户机创建文件权限
directory mask = 0755 客户机创建目录的权限
valid user = //允许
invalid = user1,user2,@group1//禁止登录用户,用户用逗号隔开,组用@ //禁止
访问控制
hosts allow = 允许主机 192.168.100.
hosts deny = 拒绝主机 允许优先
max connections = 最大连接数目
deadtime = 断掉连接时间(分钟,0为不限制)
public =所有用户都可以访问 / guest ok=yes/no
map to guest = Bad User 匿名访问
使用的端口
- Port 137 (UDP) - NetBIOS 名字服务 ; nmbd
- Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
- Port 138 (UDP) - NetBIOS 数据报服务
- Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享) 139/445
实现文件共享
Linux服务端:
[root@localhost ~]# mount /dev/sr0 /mnt/ #挂载光盘
[root@localhost ~]# yum install samba -y #安装samba服务
[root@localhost ~]# vim /etc/samba/smb.conf #配置文件
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
# 修改了只留下一些比较重要的
[global]
workgroup = SAMBA #工作组名称
security = user #安全验证方式
# passdb backend = tdbsam #用户后台的类型
[homes]
comment = Home Directories
valid users = %S, %D%w%S #可访问的用户
browseable = No #不可浏览,表示不可见
read only = No #只读
inherit acls = Yes #继承权限
[root@localhost ~]# useradd lisi #添加lisi用户
[root@localhost ~]# smbpasswd -a lisi #吧lisi添加到samba服务中
New SMB password:
Retype new SMB password:
[root@localhost ~]# pdbedit -L #展示一下samba中的用户
lisi:1006:
[root@localhost ~]# systemctl restart smb nmb #重启两个服务
下面在Windows上测试
用户自定义共享文件
1、通过samba提供一个公共文件服务器,所有人都可以访问并写入,但是当前用户不可以删除和