Samba文件共享服务搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Samba文件共享服务搭建相关的知识,希望对你有一定的参考价值。

主机名称

操作系统

IP地址

Samba共享服务器

红帽RHEL6操作系统

192.168.0.141

客户端

红帽RHEL6操作系统

192.168.0.142

客户端

Windows7操作系统

192.168.0.110

[[email protected] ~]## yum -y install samba

[[email protected] ~]# service smb restart

[[email protected] ~]# chkconfig smb --list

smb             0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

[[email protected] ~]## cat /etc/samba/smb.conf | grep -v "#" | grep -v ";" | grep -v "^$"

[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

[homes]

comment = Home Directories

browseable = no

writable = yes

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no

writable = no

printable = yes

过滤后的配置文件:

[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:来访主机无需验证口令,更加方便,但安全性很差。


#user:需由SMB服务验证来访主机提供的口令后才可建立访问,更加的安全。


#server:使用独立的远程主机验证来访主机提供的口令(集中管理帐号)。


#domain:使用PDC来完成验证


passdb backend = tdbsam

#定义用户后台的类型,共有3种。


#smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码。


#tdbsam:创建数据库文件并使用pdbedit建立SMB独立的用户。


#ldapsam:基于LDAP服务进行帐户验证。


load printers = yes

#设置是否当Samba服务启动时共享打印机设备。


cups options = raw

#打印机的选项

[homes]


#共享参数


comment = Home Directories

#描述信息


browseable = no

#指定共享是否在“网上邻居”中可见。


writable = yes

#定义是否可写入操作,与"read only"相反。

[printers]


#打印机共享参数


comment = All Printers



path = /var/spool/samba

#共享文件的实际路径(重要)。


browseable = no



guest ok = no

#是否所有人可见,等同于"public"参数。


writable = no



printable = yes


标准的Samba共享参数是这样的:

参数

作用

[linuxprobe]

共享名称为linuxprobe

comment = Do not arbitrarily modify the database file

警告用户不要随意修改数据库

path = /home/database

共享文件夹在/home/database

public = no

关闭所有人可见

writable = yes

允许写入操作

使用Samba服务口令验证方式可以让共享文件更加的安全,做到仅让信任的用户访问,而且验证过程也很简单,要想使用口令验证模式,我们需要先需要创建Samba服务独立的数据库。

第1步:检查当前是否为user验证模式

[[email protected] ~]# cat /etc/samba/smb.conf

……

  security = user

passdb backend = tdbsam

……

第2步:创建共享文件夹:

[[email protected] ~]# mkdir /database

第3步:描述共享文件夹信息。

在SMB服务主配置文件的最下面追加共享文件夹的配置参数:

[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes

保存smb.conf文件后重启启动SMB服务:

[[email protected] ~]# service smb restart

第4步:使用Windows主机尝试访问

在Windows主机的运行框中输入远程主机的信息

技术分享

此时访问Samba服务报错

技术分享

这时我们需要关闭防火墙(或清空防火墙规则)和修改SElinux规则


第5步:清空防火墙规则链:

[[email protected] ~]# /etc/init.d/iptables stop

或者:

[[email protected] ~]# iptables -F

[[email protected] ~]# service iptables save

第6步:创建SMB服务独立的帐号。

现在Windows系统要求先验证后才能访问共享,而SMB服务配置文件中密码数据库后台类型为”tdbsam“,所以这个帐户和口令是Samba服务的独立帐号信息,我们需要使用pdbedit命令来创建SMB服务的用户数据库。

pdbedit命令用于管理SMB服务的帐户信息数据库,格式为:“pdbedit [选项] 帐户”。

参数

作用

-a 用户名

建立Samba用户

-x 用户名

删除Samba用户

-L

列出用户列表

-Lv

列出用户详细信息的列表

创建系统用户:

[[email protected] ~]# useradd smbuser

将此系统用户提升为SMB用户:

[[email protected] ~]# pdbedit -a -u smbuser

new password:        //设置SMB服务独立密码

retype new password:

Unix username:        smbuser

NT username:          

……

第7步:允许SELinux规则

设置共享目录的ACL权限添加smbuser用户:

[[email protected] ~]# setfacl -m u:smbuser:rwx /database

允许SELinux对于SMB用户共享家目录的布尔值:

[[email protected] ~]# setsebool -P samba_enable_home_dirs on

将共享目录的SELinux安全上下文设置妥当:

[[email protected] ~]# chcon -t samba_share_t -R /database

重启服务:

[[email protected] ~]# service smb restart

第8步:使用Windows主机验证共享结果


使用SMB服务并创建文件

技术分享


实现Linux系统之间数据共享

客户端安装cifs-utils软件包:

[[email protected] ~]# yum -y install cifs-utils

[[email protected] ~]# smbclient -L 192.168.0.141    //查看141服务器提供了哪些共享

Enter root‘s password: 

Anonymous login successful

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-20.el6]


Sharename       Type      Comment

---------       ----      -------

database        Disk      Do not arbitrarily modify the database file

IPC$            IPC       IPC Service (Samba Server Version 3.6.23-20.el6)

……

[[email protected] ~]# mkdir /mntsmb

[[email protected] ~]# vim /etc/fstab

//192.168.0.141/database /mntsmb cifs username=smbuser,password=123456,domain=MYGROUP,_netdev 0 0

[[email protected] ~]# mount -a

[[email protected] ~]# mount | grep /mntsmb

//192.168.0.141/database on /mntsmb type cifs (rw)

[[email protected] ~]# cat /mntsmb/smb.txt 

hello 


PS:写的内容比较多,但是实际配置起来,步骤很少的,也比较简单的!

本文出自 “Linux运维” 博客,请务必保留此出处http://dywwen.blog.51cto.com/12715220/1926339

以上是关于Samba文件共享服务搭建的主要内容,如果未能解决你的问题,请参考以下文章

Manjaro搭建samba共享文件服务器

让我们一起搭建samba服务,共享文件不再痛苦

让我们一起搭建samba服务,共享文件不再痛苦

让我们一起搭建samba服务,共享文件不再痛苦

Samba文件共享服务器搭建详解

搭建文件共享服务器-samba 匿名和用户验证访问