如何配置samba服务器,第1张

Linux系统默认已经安装了Samba,但是没有安装Samba服务:

1,先查看安装情况:rpm -qa|grep samba

根据系统的安装情况选择下载或者通过光驱安装所缺的rpm包。

我的安装情况是:

使用命令:mount /dev/cdrom1 /mnt/cdrom1

通过mount把cdrom1挂载到系统临时目录/mnt/cdrom1,在Packets包下面使用命令:rpm -ivh sambarpm包安装。

切换到放置rpm文件的目录

[root@smb_server root]# rpm -ivh samba-common-369-151el6x86_64

这是Samba 必备的程序,必须安装

[root@smb_server root]# rpm -ivh samba-369-151el6x86_64

安装Samba 服务器程序,可以使我Windows 主机访问Samba 服务器共享的资源。

如果需要使Linux 主机访问Windows 主机上的共享资源,则还应该安装Samba 客户端程序。

[root@smb_server root]# rpm -ivh samba-client-369-151el6x86_64

2,安装samba的rpm包完成后

samba-common-369-151el6x86_64 //主要提供samba服务器的设置文件与设置文件语法检验程序testparm

samba-client-369-151el6x86_64 //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集

samba-swat-369-151el6x86_64 //基于https协议的samba服务器web配置界面

samba-369-151el6x86_64 //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项

Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smbconf是samba的核心配置文件,/etc/initd/smb是samba的启动/关闭文件。

5、查看samba的服务启动情况

# service smb status

6、设置开机自启动

# chkconfig --level 35 smb on //在3、5级别上自动运行samba服务

7、配置smb服务

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

netbios name = ImgPath05

[ImgPath]

comment = Public stuff

path = /usr/local/nginx/html/img

public = yes

writeable = yes

browseable = yes

guest ok = yes

共享目录为:/usr/local/nginx/html/img,共享目录对外名称为:ImgPath 即在Windows看到的目录名称。

设置共享目录权限:chown -R nobody:nobody /usr/local/nginx/html/img/

8、启动或者重启smb服务

重启smb服务

测试smbconf配置是否正确

9 Windows访问共享目录,但是没有写权限,通过以下方式修改防火墙设置。

将Linux smb服务添加到防火墙的例外中 以root用户执行setup命令#setup弹出重启生效,如果不想重启,用命令#setenforce 0

1、相关的文件

samba-common samba服务器的主文件

samba 服务器端的软件

samba-client 客户端的软件

redhat-config-samba 图形界面的配置文件

samba-swat web配置工具

2、步骤

1)安装SAMBA服务器

(1)检测是否安装samba

#rpm -qa | grep samba

(2)安装:将第一张光盘放入光驱

#mount /mnt/cdrom

#cd /mnt/cdrom/RedHat/RPMS

#ls samba

#rpm -ivh samba-common-227a-790i386rpm

#rpm -ivh samba-227a-790i386rpm

#rpm -ivh samba-client-227a-790i386rpm

#cd /

#umount /mnt/cdrom

#eject

2)设置samba的密码文件

(1)成批用户密码文件的生成

#cat /etc/passwd | mksmbpasswdsh > /etc/samba/smbpasswd

(2)删除一些无用的shell帐户

#vi /etc/samba/smbpasswd

从1到9。

(3)设置目录和文件的权限

#chown rootroot /etc/samba/smbpasswd

#chmod 500 /etc/samba

#chmod 600 /etc/samba/smbpasswd

#ll -d /etc/samba

(4)单个用户设置samba密码

#useradd wujianan

#passwd wujianan

#smbpasswd -a wujianan

3)启动samba服务器

#service smb start

#pstree | grep mbd

#smbclient -L localhost或者IP地址

4)配置samba的共享

#vi /etc/samba/smbconf

[global]

workgroup = workgroup

server string = samba server

;hosts allow = 1921681 1921682 127

printcap = /etc/printcap

load prints = yes

printing = cups

;guest account = pcguest

log file = /var/log/samba/%mlog

max log size = 0

安全选项

security = user(share)

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd

;interfaces = 192168122/24 192168132/24

dns proxy = no

设置每个用户主目录共享

[homes]

comment = Home Directries

browseable = no 不允许浏览共享文件夹

writeable = yes 允许写入

valid users = %s

create mode = 0664

directry mode = 0775

[printers]

comment = All prints

path = /var/spool/samba

browseable = no

printable = yes

[doc]

comment = doc

path = /home/doc

browseable = no

writeable = no或 read only = yes

guest ok = yes

示例:

要求:创建一个共享目录,所有用户都可访问,权限为只读。

#vi /etc/samba/smbconf

workgroup = workgroup

server string = samba server

netbios name = RH9

dos charset = cp936

unix charset = cp936

secrity = share

[read]

comment = read

path = /home/read

public = yes

guest ok = yes

read only = yes

保存退出

#mkdir /home/read

#service iptables stop

#service smb start

#testparm

\\ip地址

创建一个可写的目录,允许所有用户可写入。

[write]

comment = write

path = /home/write

public = yes

guest ok = yes

writeable = yes

保存退出

#mkdir /home/write

#chmod 777 /home/write

#service iptables stop

#service smb restart

为指定的用户和组访问samba服务器

#useradd mehost

#passwd wujianan

#smbpasswd -a wujianan

#mkdir /var/samba/wujianan

#chown stu1stu1 /var/samba/wujianan

#vi /etc/samba/smbconf

security = user

[wujianan]

comment = wujianan

path = /var/samba/wujianan

valid users = wujianan

public = yes

writeable = yes

保存退出

#service smb restart

最简单的**服务器的配置

#vi /etc/samba/smbconf

workgroup = workgroup

server string = movies server

guest account = nobody

security = share

client code page = cp936

wins support = yes

[movies]

comment = movies

browseable = yes

writeable = no

path = /movies

guest ok = yes

read only = yes

保存退出

#mkdir /movies

#useradd admin -d movies

#passwd admin

#vi /etc/passwd

admin:x:0:500::/movies:/bin/bash

保存退出

#ntsysv

选择smb和vsftp项

#service smb start

#service vsftpd start

#service iptables stop

安装服务程序

通过安装Samba服务程序后细致的分析其配置文件参数,更能够帮助读者们理解Samba服务的安全验证方式。

安装Samba服务软件包:

[root@linuxprobe Desktop]# yum install samba

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

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

Installing:

samba x86_64 411-31el7 rhel7 527 k

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

Complete!

浏览Samba配置文件:

[root@linuxprobe ~]# cat/etc/samba/smbconf

配置文件竟然有320行!有没有被吓到?其实Samba服务配置文件中大部分是注释信息,我们可以来筛选过滤下:

备份原始的配置文件:

[root@linuxprobe ~]# mv /etc/samba/smbconf /etc/samba/smbconfbak

过滤掉无用的内容:

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

cat /etc/samba/smbconfbak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smbconf

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

[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/smbconf)并重启SMB服务程序即可生效。

但此时SMB服务默认的验证模式为user,我们需要先创建用户数据库后才可以正常使用,现在来学习下如何创建吧~

1222 安全共享文件

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

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

[root@linuxprobe ~]# cat /etc/samba/smbconf

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

[root@linuxprobe ~]# mkdir /database

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

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

[database]

comment = Do not arbitrarily modify the database file

path = /database

public = no

writable = yes

保存smbconf文件后重启启动SMB服务:

[root@linuxprobe ~]# systemctl restart smb

添加到开机启动项:

[root@linuxprobe ~]# systemctl enable smb

ln -s '/usr/lib/systemd/system/smbservice' '/etc/systemd/system/multi-usertargetwants/smbservice'

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

读者按照下表的IP地址规划动手配置下Windows的网卡参数,应该都会吧~

主机名称 操作系统 IP地址

Samba共享服务器 红帽RHEL7操作系统 1921681010

客户端 红帽RHEL7操作系统 1921681020

客户端 微软Windows7操作系统 1921681030

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

此时访问Samba服务报错

此时访问Samba服务是报错的,如果读者已经看完Apache(httpd)服务程序的章节,应该还记得防火墙和SELinux规则吧。

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

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

[root@linuxprobe ~]# Iptables -F

[root@linuxprobe ~]# service iptables save

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

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

那么这个问题就是出在Iptables防火墙的默认规则中了,所以请对SELinux多一点耐心,不要直接关闭SELinux。

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

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

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

参数 作用

-a 用户名 建立Samba用户

-x 用户名 删除Samba用户

-L 列出用户列表

-Lv 列出用户详细信息的列表

创建系统用户:

[root@linuxprobe ~]# useradd smbuser

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

[root@linuxprobe ~]# 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进入共享目录失败

1

2

3

<

>

第8步:允许SELinux规则

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

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

[root@linuxprobe ~]# chown -Rf smbuser:smbuser /database

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

[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on

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

[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /database

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

[root@linuxprobe ~]# restorecon -Rv /database/

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

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

使用SMB服务并创建文件

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

刚刚好像让读者产生了一些小误解,Samba服务程序并不仅仅是能够实现Linux与Windows系统间的文件共享,还可以实现Linux系统之间的文件共享哦,先动手配置下客户端主机的IP地址吧:

主机名称 操作系统 IP地址

Samba共享服务器 红帽RHEL7操作系统 1921681010

客户端 红帽RHEL7操作系统 1921681020

客户端 微软Windows7操作系统 1921681030

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

[root@linuxprobe ~]# yum install -y cifs-utils

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

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

Installing:

cifs-utils x86_64 62-6el7 rhel7 83 k

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

Complete!

创建挂载目录:

[root@linuxprobe ~]# mkdir /database

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

[root@linuxprobe ~]# vim authsmb

username=smbuser

password=redhat

domain=MYGROUP

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

[root@linuxprobe ~]# chmod -Rf 600 authsmb

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

[root@linuxprobe ~]# vim /etc/fstab

//1921681010/database /database cifs credentials=/root/authsmb 0 0

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

[root@linuxprobe ~]# mount -a

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

[root@linuxprobe ~]# cat /database/Memotxt

i can edit it

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

使用Samba实现文件共享 http://wwwlinuxprobecom/chapter-12html 参考这里了……!@%¥#

ed Hat Linux 90,则系统会默认安装Samba组件。我们可以在终端命令窗口输入以下命令进行验证:

[root@ahpeng root] rpm -qagrep samba

如果结果出现以下所示的5个软件包,则表示已经安装:

samba-swat-227a-790

samba-227a-790

redhat-config-samba-104-1

samba-common-227a-790

samba-client-227a-790

如果没有安装过Samba软件包,则可以插入第1张安装光盘,然后鼠标依次单击“主菜单→系统设置→添加/删除应用程序”菜单项,打开“软件包管理”对话框,在该对话框中找到“Windows文件服务器”选项,确保该选项处于选中状态,然后单击“更新”按钮即可开始安装。

你也可以把第1张安装光盘插入光驱,然后在终端命令窗口输入以下命令:

[root@ahpeng root]# cd /mnt/cdrom/RedHat/RPMS

[root@ahpeng RPMS]# rpm -ivh samba

[root@ahpeng RPMS]# rpm -ivh redhat-config-samba-104-1noarchrpm

二、Linux主机访问Windows主机

安装好Samba之后,就有了与Windows互相访问的基础。这里先介绍一下如何用字符命令方式访问Windows宿主机的共享资源。

1、查询宿主机的共享资源

可以使用“smbclient –L WindowsHostName”命令(此处的WindowsHostName用Windows主机名代替)。本例是要查询Windows主机Peter 上的共享资源,可以在终端窗口输入“smbclient –L Peter”命令,然后回车即可看到Windows主机的共享资源。

2、连接宿主机的共享目录

可以使用“smbclient //WindowsHostName/ShareName”命令来连接Windows主机上的某个共享文件夹,如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName –U UserName”命令。例如要连接Windows主机Peter上的共享目录Share,我们可以在终端窗口输入“smbclient //Peter/Share”命令然后回车即可。

如果连接成功,即可出现“smb:>”提示符,在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。

Smb支持的命令有大约40个命令,可以很方便地对共享目录进行删除、重命名、切换目录等操作。如果要列出共享目录“Share”下的具体内容,可以使用ls命令。要删除其下的testtxt文件,可以使用“del testtxt”命令。共2页。

3、映射网络驱动器

我们知道,Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹来使用。在Linux下可以借助于 smbmount命令来实现,具体的命令参数是“smbmount //WindowsHostName/ShareName /mnt/smbdir”(此处的ShareName指代Windows共享资源名称,smbdir指代挂载点名称)。假设要将Windows主机 Peter下的共享文件夹Share映射为/mnt/WinShare目录,具体步骤是:

首先在/mnt目录下创建一个目录,假设为/mnt/WinShare;

然后打开终端命令窗口,运行“smbmount //Peter/Share /mnt/WinShare”即可。

现在再在文件管理器里打开/mnt/WinShare目录可以看到共享目录的内容,要卸载该映射目录,可以使用umount命令。

4、用Nautilus访问Windows主机

借助Gnome桌面下的文件管理器Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是Nautilus只是提供访问Windows主机的图形界面,具体的底层操作还是借助于Samba客户端来完成。

在Gnome桌面环境下,单击“主菜单→网络服务器”菜单项,即可用Nautilus文件管理器查看工作组列表。双击工作组名称,即可看到其下的Windows主机。

双击其中的某台Windows主机图标,即可看到该主机的共享文件夹,可以看到这和Windows下的网络邻居几乎一样。

由于Nautilus本身就是Red Hat Linux的文件管理器,所以我们可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等等(对于windows 2000/XP主机还需要考虑该共享资源的权限设置)。

三、Windows主机访问Linux主机

要想让Windows宿主机能够访问Linux虚拟机,就必须在Linux虚拟机上启动Samba服务。在启动之前,还需要对Samba服务的属性进行配置,例如指定Linux虚拟机的共享目录、所在的工作组名称等。

1、配置Samba服务器

在以前版本的Red Hat Linux,我们必须直接修改Samba配置文件smbconf,或者使用SWAT对Samba进行全方位的设置。Red Hat Linux 90新引入了一个图形化的Samba服务器配置工具,可以让我们很方便地对Samba服务器进行配置。以root用户身份登录系统,单击“主菜单→系统设置→服务器设置→Samba服务器”菜单项,即可打开Samba服务器配置对话框。也可以在终端命令窗口输入“redhat-config- samba”,来访问Samba服务器配置对话框。

首先对Samba服务器的基本设置和安全选项进行配置,单击配置对话框上的“首选项→服务器设置”菜单项,即可打开服务器设置对话框。

基本设置:在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。

安全设置:然后进行Samba服务器安全设置,这里一共有4个选项。

“验证模式”代表如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码;“验证服务器”代表对于“共享”验证模式,无需启用此项设置;“加密口令”选项应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;“来宾账号”代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。

添加共享目录:单击Samba配置对话框工具栏上的“增加”按钮。在打开的对话框中的“基本”标签页上,指定(共享)目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。

2、启动Samba服务器

打开终端命令窗口,输入“/sbin/service smb start”命令,即可出现以下提示信息,表示Samba服务已经启动。

# /sbin/service smb start

启动SMB 服务 [确定]

启动NMB 服务 [确定]

接下来在Windows里打开“网络邻居”,就可以看到我们刚才设置的Samba服务器了

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何配置samba服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情