1.smb服务器,netbios工作端口137/udp,138/udp,139/tcp,共享文件工作端口445/tcp
2.smb服务器主要是运行在linux与windows之间的文件共享服务,
安全级别有user,share,server,domain四种
user:相当于使用用户认证
share:相当于匿名访问
server:相当于在另一台服务器上用户认证
domain:相当于使用windows AD域用户认证
3.smb认证用户有3种,分为本地系统,非本地服务器上的帐号和windows的AD域帐号
注意:如果用户认证是本地系统,则必须是系统帐号,出于系统安全考虑,密码必须另创建
而不是本地系统帐号的密码,使用smbpasswd命令创建smb用户密码
格式;smbpasswd [选项] 用户名
smbpasswd –a willow 將willow用户創建smb身份并設置密碼
smbpasswd -d willow 將willow用戶smb身份禁用
smbpasswd -e willow 將willow用戶smb身份启用
smbpasswd -x willow 將willow用戶smb身份移除
testparm 測試smb配置文件是否OK 命令
4.目录文件:共享权限和文件系统权限的交集
5.smb主配置文件
vim /etc/samba/smb.conf
[共享目录名]
comment = 注释信息
path = /path #共享路径
browseable = {yes|no} #目录是否可浏览
public = {yes|no} #是否允许匿名访问,功能与guest ok一样
guest ok = {yes|no} #是否允许匿名访问,功能与public一样
read only = {yes|no} #是否可读或可写,功能与writable一样
writable = {yes|no} #是否可读或可写,功能与read only一样
write list = user1,user2...,@group,+group... # 允许可写权限的用户或组
valid users = user1,user2... #允许可写权限的用户
invalid users = user1,user2... #不允许可写权限的用户
6.实验:linux下搭建samba服务器,ip地址为1.1.1.66,共享目录为/smb/test,共享名为Tools,
仅让willow用户和willow用户组有写入权限
yum install -y samba samba-client samba-common
mkdir -pv /smb/test #创建共享目录
useradd willow #创建本地系统用户willow
smbpasswd -a willow #新增willow用户的smb密码
vim /etc/samba/smb.conf
[Tools]
comment = Tools is testing
path = /smb/test
public = yes
write list = willow,@willow
service smb start
此时访问1.1.1.66smb服务器,虽然设置了willow用户有写入的共享权限,
但willow用户没有对/smb/test目录写入文件系统权限,我上面已经说了
最终权限 等于 共享权限与文件系统权限取交集,必须做以下这一步:
setfacl -m u:willow:rwx /smb/test
setfacl -m g:willow:rwx /smb/test
7.smbclient命令
如果查看smb服务共享目录:
smbclient -L smb服务器IP地址 -U smb用户名
如:smbclient -L 1.1.1.66 -U willow
如果想像ftp服务一样操作smb服务:
smbclient //smb服务器IP地址/目录共享名 -U smb用户名
如:smbclient //1.1.1.66/Tools -U willow
8.swat服务:smb web管理工具,让用户可以通web页面的方式管理smb服务器
yum install -y samba-swat
由于swat是瞬时守护进程,由xinetd超级守护进程管理,必须先将xinetd服务启动
service xinetd start
chkconfig swat on 开启swat服务
手动修改swat服务配置文件
vim /etc/xinetd.d/swat #以下红色部色作相应修改
service swat
{
disable = no #开启swat服务
port = 901
socket_type = stream
wait = no
only_from = 1.1.1.0/24 #此网段内可以使用swat服务通过web管理smb
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
service xinetd restart
service smb restart
客户通过web登入smb服务器:第一次必须使用root帐号和密码登入,后续建立修改密码或创建帐号
最后管理smb的web页面如下: