Samba服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Samba服务相关的知识,希望对你有一定的参考价值。
一、共享
Windows 共享:Windows键+R → services.msc →Computer、Server(CIFS协议,实现跨平台)、Workstation(SMB协议,实现共享)
Linux共享:Samba(CIFS、SMB)
二、Samba服务协议
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
1.SMB协议(服务消息块):Samba的共享以及客户端的访问
2.CIFS(通用互联网文件系统):提供多系统访问支持,提供跨平台支持
三、Samba提供的程序
smb:实现数据的共享及客户端的访问(TCP:139、445)
nmb:实现Netbios解析的主机名访问支持(Netbios:早期DNS服务,可不启动)(TCP:137、138)
四、Samba访问方式
匿名用户(share)、本地用户(user)、服务器认证(server)、域服务器认证(domain)
五、部署Samba匿名用户访问
需配置静态IP
1.安装Samba共享
rm -rf /etc/yum.repos.d/* //删除系统中默认自带官方YUM源
vim /etc/yum.repos.d/local.repo
[local] //仓库名
name=local
baseurl=file:///mnt //软件包存储位置
enabled=1 //启动该仓库
gpgcheck=0 //不检测公钥信息
yum clean all && yum repolist //清除所有yum缓存,并重新新建缓存
yum -y install samba //使用yum安装samba软件包
2.编辑配置文件
vim /etc/samba/smb.conf
为了方便配置删除无用的行
:% g/^$/d //删除文本中所有空行
:% g/^;/d //删除文本中以;开头行
:% g/^#/d //删除文本中以#开头行
[global]
workgroup = WORKGROUP //指定工作组名称,需修改
server string = Samba Server Version %v //服务器描述信息
log file = /var/log/samba/log.%m //日志文件的位置
max log size = 50 //日志文件最大值(默认为KB)
security = share //安全级别(share匿名访问、user本地用户认证、server服务器认证、domain域认证)
passdb backend = tdbsam //密码认证文件
disable spoolss = yes //新增,禁用打印机共享
load printers = yes //默认共享打印机
cups options = raw //共享打印机的选项
[hehe] //共享名
comment = He is He //描述信息
path = /data //共享目录
browseable = yes //是否可浏览
guest ok = yes //是否可读
writable = no //是否可写
mkdir /data && chmod -R o=rx /data/ //新建文件夹并给予共享目录允许其它用户拥有读取、写入权限
3.启动服务
/etc/init.d/smb restart //重启smb服务
/etc/init.d/nmb restart //重启nmb服务(可选)
chkconfig --level 35 smb on //开机自启smb服务
chkconfig --level 35 nmb on //开机自启nmb服务(可选)
4.访问Samba共享
Windows系统访问:Windows+R键 --> 运行 --> 服务器IP
Linux系统
(1)安装samba-client软件包
yum -y install samba-client
(2)查看指定IP所有共享内容
smbclient -L 共享IP -U 用户名 //如为匿名访问,用户名为anonymous、密码为空
(3)访问共享IP下的所有内容
smbclient -U 用户名 -P 密码 //共享IP/共享名
smb: > put 文件 //将本地文件上传到共享目录
smb: > get 文件 //从共享目录下下载指定内容到本地
smb: > exit
(4)mount命令临时挂载共享到本地目录
mount -o username=用户名,password=密码 //共享IP/共享名 /挂载目录
(5)mount命令永久挂载共享到本地目录
vim /etc/fstab
//共享IP/共享名 /挂载目录 cifs defaults,username=用户名,password=密码 0 0
mount -a
ls [挂载目录]
六、部署Samba本地用户访问
1.安装Samba共享
yum -y install samba
2.编辑配置文件
useradd -s /sbin/nologin hehe //新建用户hehe不允许登录系统
pdbedit -a -u hehe //将系统用户hehe转换为Samba共享用户并设置密码
vim /etc/samba/smb.conf
为了方便配置删除无用的行
:% g/^$/d //删除文本中所有空行
:% g/^;/d //删除文本中以;开头行
:% g/^#/d //删除文本中以#开头行
[global]
workgroup = WORKGROUP //指定工作组名称,需修改
server string = Samba Server Version %v //服务器描述信息
log file = /var/log/samba/log.%m //日志文件的位置
max log size = 50 //日志文件最大值(默认为KB)
security = user //安全级别为user(使用本地用户认证)
passdb backend = tdbsam //密码认证文件
disable spoolss = yes //新增,禁用打印机共享
load printers = yes //默认共享打印机
cups options = raw //共享打印机的选项
[hehe] //共享名
comment = He is He //描述信息
path = /data //共享目录
browseable = yes //是否可浏览
guest ok = yes //是否可读
writable = yes //是否可写
mkdir /data && chmod -R o=rwx /data/ //给予共享目录允许其它用户拥有完全权限
3.启动服务
/etc/init.d/smb restart //重启smb服务
/etc/init.d/nmb restart //重启nmb服务(可选)
chkconfig --level 35 smb on //开机自启smb服务
chkconfig --level 35 nmb on //开机自启nmb服务(可选)
4.验证
使用hehe用户登录可读取并写入
七、Samba多用户权限控制
1.安装Samba共享
yum -y install samba
2.编辑配置文件
(1)useradd -s /sbin/nologin hehe //新建用户hehe不允许登录系统
(2)useradd -s /sbin/nologin haha ////新建用户haha不允许登录系统
(3)pdbedit -a -u hehe //将系统用户hehe转换为Samba共享用户并设置密码
(4)pdbedit -a -u haha //将系统用户haha转换为Samba共享用户并设置密码
(5)vim /etc/samba/smb.conf
为了方便配置删除无用的行
:% g/^$/d //删除文本中所有空行
:% g/^;/d //删除文本中以;开头行
:% g/^#/d //删除文本中以#开头行
[global]
workgroup = WORKGROUP //指定工作组名称,需修改
server string = Samba Server Version %v //服务器描述信息
log file = /var/log/samba/log.%m //日志文件的位置
max log size = 50 //日志文件最大值(默认为KB)
security = user //安全级别为user(使用本地用户认证)
passdb backend = tdbsam //密码认证文件
disable spoolss = yes //新增,禁用打印机共享
load printers = yes //默认共享打印机
cups options = raw //共享打印机的选项
[hehe] //共享名
comment = He is He //描述信息
path = /data //共享目录
browseable = yes //是否可浏览
guest ok = no //禁止所有人读取
valid users = hehe,haha //定义允许读取的用户列表
writable = no //禁止所有人写入
write list = hehe //定义允许写入的用户列表
mkdir /data && chmod -R o=rwx /data/ //给予共享目录允许其它用户拥有完全权限
3.启动服务
/etc/init.d/smb restart //重启smb服务
/etc/init.d/nmb restart //重启nmb服务(可选)
chkconfig --level 35 smb on //开机自启smb服务
chkconfig --level 35 nmb on //开机自启nmb服务(可选)
4.验证
(1)使用hehe用户登录可读取并写入
(2)使用haha用户登录只可读取
关于客户端访问共享慢的解决方案
1.vim /etc/resolv.conf
nameserver 服务器IP
2.客户端将DNS指定为服务器IP
八、Samba安全控制
1.别名
(1)vim /etc/samba/smbusers
hehe = a b c
用户名 = 别名(空格分割多个别名)
(2)vim /etc/samba/smb.conf
[global]
username map = /etc/samba/smbusers
(3)/etc/init.d/smb restart && /etc/init.d/nmb restart
2.访问控制
vim /etc/samba/smb.conf
[global]
hosts allow = IP(网段、域名) //只允许指定IP访问共享,其余主机拒绝访问
hosts deny = IP(网段、域名) //除指定IP拒绝访问,其余的全部允许
注:hosts allow与hosts deny不能同时使用
3.权限
vim /etc/samba/smb.conf
[global]
create mask = 权限 //设置用户上传或新建文件权限(建议将x权限取消)
directory mask = 权限 //设置用户上传或新建文件夹的权限(建议为755)
以上是关于Samba服务的主要内容,如果未能解决你的问题,请参考以下文章