linux学习-Samba服务

Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享软件,实现了Linux与Windows系统间的文件共享。

1、安装Samba服务软件包:

[[email protected] Desktop]# yum install samba

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分安装过程………………

Installing:

samba           x86_64           4.1.1-31.el7            rhel7           527 k

………………省略部分安装过程………………

Complete!

浏览Samba配置文件:

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

备份原始的配置文件:

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

过滤掉无用的内容:
先使用cat命令读入Smb配置文件后通过grep命令-v参数(反向选择)去掉所有注释信息,然后分别删选掉包含#号的行(“#”),包含;号的行(“;”)以及所有的空白行(“^$”),最后最后将过滤后的信息覆盖写入到/etc/samba/smb.conf文件中。

cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf

让我们来看看过滤后的配置文件吧:


[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


允许写入操作

我们将上面的配置参数直接追加到SMB服务配置文件(/etc/samba/smb.conf)并重启SMB服务程序即可生效。

但此时SMB服务默认的验证模式为user,我们需要先创建用户数据库后才可以正常使用。

2、安全共享文件

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

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

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

第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] ~]# systemctl restart smb

添加到开机启动项:

[[email protected] ~]# systemctl enable smb
ln -s ‘/usr/lib/systemd/system/smb.service‘ ‘/etc/systemd/system/multi-user.target.wants/smb.service‘

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

手动配置下Windows的网卡参数


主机名称


操作系统


IP地址


Samba共享服务器


红帽RHEL7操作系统


192.168.10.10


客户端


微软Windows7操作系统


192.168.10.30

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

此时访问Samba服务报错

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

Windows访问Samba主机提示报错,我们怀疑是Iptables阻止了访问操作,于是执行:

[[email protected] ~]# iptables -F

[[email protected] ~]# service iptables save

因为Windows系统的缓存关系,可能需要先重启Windows主机再尝试访问Samba共享。

Windows系统被要求验证帐户口令

这个问题就是出在Iptables防火墙的默认规则中

第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:

Account Flags: [U ]

User SID: S-1-5-21-4146456071-3435711857-2069708454-1000

Primary Group SID: S-1-5-21-4146456071-3435711857-2069708454-513

Full Name:

Home Directory: \\linuxprobe\smbuser

HomeDir Drive:

Logon Script:

Profile Path: \\linuxprobe\smbuser\profile

Domain: LINUXPROBE

Account desc:

Workstations:

Munged dial:

Logon time: 0

Logoff time: Wed, 06 Feb 2036 23:06:39 CST

Kickoff time: Wed, 06 Feb 2036 23:06:39 CST

Password last set: Sat, 11 Jul 2015 18:27:04 CST

Password can change: Sat, 11 Jul 2015 18:27:04 CST

Password must change: never

Last bad password : 0

Bad password count : 0

Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

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

Windows验证SMB服务口令

Windows成功访问SMB服务

Windows进入共享目录失败

第8步:允许SELinux规则

使用Windows主机访问Samba共享果然可以使用smbuser用户登入,但对于共享文件这么重要的事情,SELinux一定会强制管理,刚刚没有妥当的配置好SELinux,现在果然又报错了。

将共享目录的所有者和所有组设置为smbuser用户:

[[email protected] ~]# chown -Rf smbuser:smbuser /database

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

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

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

[[email protected] ~]# semanage fcontext -a -t samba_share_t /database

使新的安全上下文立即生效:

[[email protected] ~]# restorecon -Rv /database/

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

我们配置好Samba服务后又陆续的调整好了Iptables防火墙与SELinux安全规则,现在终于可以正常的使用共享了。

使用SMB服务并创建文件

第10步:使用Linux主机验证共享结果


主机名称


操作系统


IP地址


Samba共享服务器


红帽RHEL7操作系统


192.168.10.10


客户端


红帽RHEL7操作系统


192.168.10.20

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

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

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分安装过程………………

Installing:

cifs-utils          x86_64          6.2-6.el7             rhel7           83 k

………………省略部分安装过程………………

Complete!

创建挂载目录:

[[email protected] ~]# mkdir /database

在root家目录创建认证文件(依次为SMB用户名、SMB用户密码、SMB共享域):

[[email protected] ~]# vim auth.smb

username=smbuser

password=redhat

domain=MYGROUP

此文件太重要了,权限应该给小一些:

[[email protected] ~]# chmod -Rf 600 auth.smb

配置其挂载信息(内容依次为远程共享信息、本地挂载目录、文件系统类型、认证文件以及开机自检选项):

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

//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0

使用mount命令的-a参数挂载所有在fstab文件中定义的文件信息:

[[email protected] ~]# mount -a

成功挂载Samba的共享目录(能够看到共享文件了):

[[email protected] ~]# cat /database/Memo.txt

i can edit it .

Samba服务真的是太强大了,不仅能够实现Linux系统之间分享数据还能与Windows主机进行文件共享。

Windows成功访问SMB服务在Windows主机的运行框中输入远程主机的信息

/etc/samba/smb.conf

时间: 2024-12-29 07:35:16

linux学习-Samba服务的相关文章

linux下samba服务搭建

实验拓扑:Linux Client-----RHEL5.9(vmnet1)----------(vmnet1)Win7 Client 实验一:Samba匿名共享工作组为Tarena将目录 /usr/src 共享给所有人共享名设为 tools允许所有人访问.无需密码验证访问权限为只读 1.安装软件包[[email protected] ~]# rpm -q samba-client samba samba-commonpackage samba-client is not installedpac

linux之samba服务

yum -y install samba /etc/init.d/smb start    (service smb start) chkconfig --level 35 smb on testparm /etc/samba/smb.conf     #检测配置文件 配置文件:/etc/samba/smb.conf Standalone Server Options 密码设置: smbpasswd -a 用户 create mode directory mode linux之samba服务,布

windows系统访问linux系统samba服务案例

Windows访问linux系统samba服务 案例:某公司(xxxcompany)有研发部,运维部,网络部,人力资源部,财务部,综合部,采购部,市场部.这8个部门需要分享资源 要求: 研发部有自己的目录:devlopment.研发部的目录研发部所有员工和运维manager可以访问下载,但是只有研发manager可以下载,修改和上传 运维部有自己的目录:operation.运维部的目录运维部所有员工和研发manager可以访问下载,但是只有运维manager可以下载,修改和上传 网络部有自己的目

linux系统配置samba服务

一. samba配置 1. 什么是samba Samba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到. 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务. 2. 安装配置samba [[email protected] ~]#  yum install -y samba samba-client [[email protected] ~]# vi /etc/s

linux下Samba服务配置

SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件. Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协

Linux 配置samba服务实现与Windows文件共享

1.Samba服务介绍     Samba 最先在Linux 和Windows 两个平台之间架起了一座桥梁,正是由于Samba 的出现,我们可以在Linux 系统和Windows 系统之间互相通信,比如拷贝文件.实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印. Samba 应用环境: 文件和打印机共享:文件和打印机共享是Samba 的主要功能,SMB 进程实现资源共享,将文件和 打印机发布到网络之中,以供用户可

Linux配置Samba服务

为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信. 1.服务查询 默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分 ,为了对整个过程有一个完整的了解,在此先将这部分卸载掉.命令:    rpm -qa | grep samba 执行结果:(默认情况下可以查询到如下两个已经存在的包)    samba-client-3

Linux安装Samba服务

安装 samba 服务器之后,很方便的实现 Windows 和 Linux 进行通信. 安装步骤: 1 .在 Ubuntu 系统下面安装 samba 服务: shell nii@ww:~$ sudo apt-get install samba 2 .关闭 Ubuntu 的防火墙 shell nii@ww:~$ sudo service ufw stop 3 .配置 smb.conf 文件 ```shell step 1 先进入配置文件的目录,然后切换到管理员权限 nii@ww:~$ cd /et

如何给linux设置samba服务,实现windows,linux互拷文件

一,samba服务介绍和作用: samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标.SMB是一种Linux.UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源.当Windows是 Client,CentOS是服务器时,通过Samba就可以实现window访问Linux的资源,实现两个系统间的数据交互.