CIFS
Common Internet File System
SMB
Servier Message Block 服务信息快
UNC:
\\IP\SHARENAME
windows之间共享资源:
1.UNC路径:\\IP\SHARENAME
2.映射网络驱动器
3.网上邻居
以上都得基于NetBIOS,或者是WINNS(类似于dns,使用单播方式获取主机名)。
4.ftp
linux之间共享资源:
1.ftp
2.nfs(基于内核,效率高)
windows和linux之间共享资源:
1.ftp
2.samba
NetBIOS
通过广播的方式,实现获取主机名称的功能。
端口:
udp 137 138
tcp 139
samba:
提供NetBIOS CIFI/SMB WinBIND服务,可以和windows共享资源。使用WinBIND和LDAP可以提供windows域相关功能。
受selinux控制。
端口:
tcp 445 共享文件
tcp 139
账号和密码:
系统用户 --> samba用户
samba密码(加密)
#smbpasswd [OPTION] USERNAME 更改系统用户为samba用户
[OPTION]
-a 添加为samba用户账号
-d 启用samba账号
-e 禁用samba账号
-x 删除samba账号
安全级别
share 允许匿名访问
user
server
domain
文件权限(交集):
1.共享权限,即samba配置文件中权限的定义。
2.文件系统权限,即用户对文件夹的权限。
浏览权限:
文件或文件夹除属主属组外是否可以看到。
安装:
#yum install samba*
进程:
nmbd
提供NetBIOS
udp 137 138
tcp139
smbd
提供文件共享
tpc 445
winbindd
跟windows域相关
服务脚本:
/etc/rc.d/init.d/smb
配置文件:
/etc/smb.conf 配置文件
#为注释,;是可以启用的选项
[global] 全局选项
workgroup = WORKGROUP 工作组
server string = DESCRIPTION %v 显示服务器的相关描述,%v为宏,表示版本号
;netbios name= SERVERNAME netbios的名称。一般使用FQDN的第一段。
log file = /var/log/samba/log.%m 为每个设备单独创建日志。也可以使用同一个日志
max log size = 50 日志最大大小,单位为KB。
security = user 安全级别
passdb backend = tdbsam 密码库存放格式
load printers = yes 是否自动加载打印机
cups options = raw 指定打印选项 common unix printing system
;host allow = IP | NET 主机白名单
;lhost deny = IP| NET 主机黑名单
[homes] 定义用户是否可以通过samba服务访问自己的家目录
comment = DESCRIPTION 描述信息
browseable = no 是否可浏览,no表示除用户自己其他人不可见
writable = yes 是否有写权限
[prints] 打印机相关
comment= All Printers
path = /var/spool/samba 缓冲池位置
browseable = no
guest ok = no 是否允许来宾访问
writable = no
printable = yes 是否允许打印
[SHARENAME] 共享名
comment = 描述
path = 文件路径
borwseable = 是否可浏览
public = 是否允许匿名或来宾用户访问 等同于 guest ok
read only = 是否只读
writable = 是否可写
write list = USER1,USER2,...,@GROUP1,@GROUP2,... 定义可写用户列表
valid users = 白名单
invalid users = 黑名单
smbusers 用户映射文件
lmhosts 主机名称文件
验证配置文件:
#testparm
客户端:
#smbclient [OPTION] //IP/SHARDNAME 类似ftp的CIFS/SMB的客户端工具
[OPTION]
-L NetBIOSNAME 列出对应主机上的共享
-U USERNAME 指定用户名,不指定使用来宾账号。
-P 交互式输入密码
-I IP 指定主机的ip地址
登陆后提示符变成 smb: \>,其中的命令和ftp的命令相似。
基于ip的访问控制:
1.iptables
2.smb.conf
host allow = xxx