搭建 samba 文件共享服务器 ( 1 )

搭建 samba 文件共享服务器  ( 1 )

samba 文件共享 想必大家都知道 是什么 ,其实说白了 就是 windows 和 linux 系统之间可以相互文件共享的一个软件!

其次 ,这是 samba 服务器的搭建 也是我们红帽rhce 考试里的一项,所以必须要掌握!

环境 : rhel7

软件 : samba

一、安装软件

[root@feixiangkeji ~]# yum install samba

搭建 samba 文件共享服务器  ( 1 )

samba软件安装

二、开机自启动,开启服务

systemctl enable smb

systemctl start smb

搭建 samba 文件共享服务器  ( 1 )

三、添加防火墙策略

[root@feixiangkeji ~]# firewall-cmd --add-service=samba --permanent

[root@feixiangkeji ~]# firewall-cmd --reload

搭建 samba 文件共享服务器  ( 1 )

搭建 samba 文件共享服务器  ( 1 )

四、创建共享目录

mkdir /share

mkdir /public

(我这里创建两个共享目录,/public 是用来做匿名用户,/share 是 feixiangkeji 用户认证的共享目录)

chmod 777 /share

chmod 777 /public

搭建 samba 文件共享服务器  ( 1 )

五、修改共享目录上下文关系,设置布尔值

注意的是 : 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

搭建 samba 文件共享服务器  ( 1 )

修改上下文

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

搭建 samba 文件共享服务器  ( 1 )

修改布尔值

第六步、修改配置文件

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服务程序中的参数以及作用

[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”相反

我们只需要在最下面追加 就可以了。。。。。。。。。。。。

我们因为要做一个普通用户共享和 匿名用户共享,下面就是我的例子:

[share]共享名称为share
comment = Do not arbitrarily modify the database file警告用户不要随意修改数据库
path = /share共享目录为/share
browseable = yes开启“所有人可见”
writable = no不允许写入操作
write list = feixiangkeji 但只允许 feixiangkeji 用户写入

(普通用户共享的配置文件)

[public] 共享名称为public
comment = This is a public directory这是一个公开的目录
path = /public共享目录为/public
browseable = yes开启“所有人可见”
writable = yes允许写入操作
public = yes公开,允许匿名访问

(匿名用户共享的配置文件)

搭建 samba 文件共享服务器  ( 1 )

补充说明:

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

连续两次输入密码

搭建 samba 文件共享服务器  ( 1 )

第八步: 重启服务

systemctl restart smb

第九步: 客户端测试

搭建 samba 文件共享服务器  ( 1 )

搭建 samba 文件共享服务器  ( 1 )

搭建 samba 文件共享服务器  ( 1 )

创建文件 进行测试 !!!!

谢谢大家 !

欢迎大家在留言区评论!


分享到:


相關文章: