samba 文件共享 想必大家都知道 是什么 ,其实说白了 就是 windows 和 linux 系统之间可以相互文件共享的一个软件!
其次 ,这是 samba 服务器的搭建 也是我们红帽rhce 考试里的一项,所以必须要掌握!
环境 : rhel7
软件 : samba
一、安装软件
[root@feixiangkeji ~]# yum install samba
samba软件安装
二、开机自启动,开启服务
systemctl enable smb
systemctl start smb
三、添加防火墙策略
[root@feixiangkeji ~]# firewall-cmd --add-service=samba --permanent
[root@feixiangkeji ~]# firewall-cmd --reload
四、创建共享目录
mkdir /share
mkdir /public
(我这里创建两个共享目录,/public 是用来做匿名用户,/share 是 feixiangkeji 用户认证的共享目录)
chmod 777 /share
chmod 777 /public
五、修改共享目录上下文关系,设置布尔值
注意的是 : samba 服务的 上下文是 samba_share_t
semanage fcontext -a -t samba_share_t '/share(/.*)?'
semanage fcontext -a -t samba_share_t '/public(/.*)?'
restorecon -RFv /share
restorecon -RFv /public
修改上下文
getsebool -a | grep samba 查询samba 的所有布尔值
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
我们要修改的就是我上面加粗的两个
setsebool -P samba_export_all_ro on
setsebool -P samba_export_all_rw on
修改布尔值
第六步、修改配置文件
vim /etc/samba/smb.conf
但是注释信息行实在太多,不便于分析里面的重要参数,因此先把主配置文件改个名字,然后使用cat命令读入主配置文件,再在grep命令后面添加-v参数(反向选择),分别去掉所有以井号(#)和分号(;)开头的注释信息行,对于剩余的空白行可以使用^$参数来表示并进行反选过滤,最后把过滤后的可用参数信息通过重定向符覆盖写入到原始文件名称中。执行过滤后剩下的Samba服务程序的参数并不复杂
cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
cat /etc/samba/smb.conf_bak | grep -v "^$ | grep -v "#" | grep -v ";" > /etc/samba/smb.conf
[root@feixiangkeji /]# cat /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
Samba服务程序中的参数以及作用
<table><tbody>[global]
参数
作用
workgroup = MYGROUP
#工作组名称
server string = Samba Server Version %v
#服务器介绍信息,参数%v为显示SMB版本号
log file = /var/log/samba/log.%m
#定义日志文件的存放位置与名称,参数%m为来访的主机名
max log size = 50
#定义日志文件的最大容量为50KB
security = user
#安全验证的方式,总共有4种
#share:来访主机无需验证口令;比较方便,但安全性很差
samba 4 中 已经取消 share 这个模式#user:需验证来访主机提供的口令后才可以访问;提升了安全性
#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#domain:使用域控制器进行身份验证
passdb backend = tdbsam
#定义用户后台的类型,共有3种
#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#ldapsam:基于LDAP服务进行账户验证
[homes]
#共享参数
comment = Home Directories
#描述信息
browseable = no
#指定共享信息是否在“网上邻居”中可见
writable = yes
#定义是否可以执行写入操作,与“read only”相反
/<tbody>/<table>我们只需要在最下面追加 就可以了。。。。。。。。。。。。
我们因为要做一个普通用户共享和 匿名用户共享,下面就是我的例子:
<table><tbody>[share]共享名称为sharecomment = Do not arbitrarily modify the database file警告用户不要随意修改数据库path = /share共享目录为/sharebrowseable = yes开启“所有人可见”writable = no不允许写入操作write list = feixiangkeji 但只允许 feixiangkeji 用户写入/<tbody>/<table> (普通用户共享的配置文件)
(匿名用户共享的配置文件)
补充说明:
samba4 相比较以前的 samba 3 有个重大的变化是 , security 四种验证方式中 不再支持 share ,然而参数就要做调整
原来 :
security = share
现在 :
security = user
map to guest = Bad User
第七步: 给共享用户添加密码
[root@feixiangkeji ~]# yum install samba-client (给samba用户添加密码用到的软件)
useradd -s /sbin/nologin feixiangkeji (添加smb 用户)
smbpasswd -a feixiangkeji
连续两次输入密码
第八步: 重启服务
systemctl restart smb
第九步: 客户端测试
创建文件 进行测试 !!!!
谢谢大家 !
欢迎大家在留言区评论!