关于samba的一些注意事项,第1张

SAMBA可以让Windows与Linux之间共享文件系统,还可以成为打印机服务器(虽然现在不怎么需要这个功能)。

使用FTP传输文件有个小小的问题,那就是无法直接修改主机上面的文件数据。samba则不会。

CIFS (common Internet File System),是微软操作系统上面的文件系统。最常见的就是目前的“网上邻居”。不过CIFS只能让windows机器沟通,NFS是Unix-like上面的文件共享,只能让Unix机器沟通。

samba原为 Server Message Block(SMB)文件系统,后来在注册的时候因为需要而注册为samba(热情奔放的拉丁舞蹈)。

samba 这个文件系统是架构在NetBIOS( Network Basic Input/Output System)这个通信协议上面开发出来的。NetBIOS是无法跨越路由的。

NetBIOS在局域网内实在是很好用,所以微软的网络架构就是用了这个协议来进行沟通。但通过NetBios over TCP/IP 的技术,我么就可以跨路由使用SAMBA服务器所提供的功能。当然,Samba还是比较广泛地是用在LAN里。

NetBios 当初发展时就着眼于局域网内的快速数据交流,而因为是定义在局域网内,因此它并没有使用了类似 TCP/IP 之类的传输协议,也就不需要IP的设置。其实主机在Netbios协议当中的定义为使用“NetBios name”,每一台主机必须要有不同的NetBios name才行,额头文件数据就是在不同的NetBios name 之间沟通。在同一个组中,NetBios 必须是独一无二的。

SAMBA是通过两个服务来控制的,分别是:

nmbd:这个daemon是用来管理工作组、NetBIOS Name等的解析。主要利用UDP协议开启port137、138来负责名称解析的任务;

smbd:这个daemon的主要功能就是用来管理SAMBA主机共享的目录、文件与打印机等。主要利用可靠的TCP协议来传输数据,开放的端口为139与445。

samba的配置文件/etc/samba/smbconf主要包括两部分:

global中就是一些服务器的全局参数;

共享资源名称则是针对开放的目录来进行权限方面的设置。

在新版本的samba中,匿名访问有所变化:

特别注意以下几点:

因为SAMBA会对外提供服务,因此SELinux会特别关照一下这个服务。

使用samba是有一定的危险性的,很多网络攻击的蠕虫、病毒、木马就是通过网上邻居来攻击的。为了阻挡不必要的连接,默认的SELinux已经关闭了很多SAMBA连接的功能,因此可能很多客户端的挂载可能会有问题。

1、SELinux的相关议题

2、防火墙议题:iptables来管理

3、通过内建的SAMBA设置(smbconf)

通过windows的网络搜索;

通过 port 445的特殊登陆方式:

```

[global]

workgroup = SAMBA

security = user

passdb backend = tdbsam

unix charset = utf-8

display charset = utf-8

#printing = cups

#printcap name = cups

#load printers = yes

#cups options = raw

browseable = yes

hosts allow = 192168

log file = /var/log/samba/log%m

[共享]

comment = Public

path = /home/samba

public = yes

writeable = yes

browseable = yes

[myself]

comment = zhang

path = /home/zhang

valid users = zhang,root

writeable = yes

guest ok = no #是否允许匿名访问

[group]

comment = group share

path = /home/group

valid users = @group

writeable = yes

```

用于工作在user模式下的Samba服务器配置中。创建samba服务密码文件的指令为用于工作在user模式下的Samba服务器配置中,需要使用smbpasswd命令创建。Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议。

天互数据 为您解答,希望能帮到你

下面是对于landisk01资源的设定

[landisk01] comment = LanDisk 01, movies, musics and other path = /hd1/landisk01 browseable = yes writable = yes create mask = 0766 force create mode = 0766 directory mask = 0777 force directory mode = 0777 directory security mask = 0777 force directory security mode = 0777 guest ok = no

# Users and Groups with access: valid users = user01 user02 @group01 # Users and Groups with write access: write list = user01 # Users and groups with read-only access: read list = user02 @group01

下面是对于landisk02的设置

[landisk02] comment = LanDisk 02 path = /hd1/landisk02 browseable = yes writable = yes create mask = 0766 force create mode = 0766 directory mask = 0777 force directory mode = 0777 directory security mask = 0777 force directory security mode = 0777 guest ok = no

# Users and Groups with access: valid users = user01 user02 @group01 # Users and Groups with write access: write list = user02 # Users and groups with read-only access: read list = user01 @group01

如果你要对某个资源中,使用垃圾箱机制(删除文件时,不是完全删除,而是放入你指定的文件夹),你可以在某个资源中添加如下设置。

# and recycle function # enable recycle vfs objects = recycle recycle:repository = recycle # do not to keep the directory tree when move to recycle recycle:keeptree = no # change the name when file have same name recycle:versions = yes # do not to update the timestamp when move to recycle recycle:touch = no recycle:maxsize = 0 recycle:exclude = tmp ~$

会把你删除的文件,都放如到recycle目录中,这个在客户机上看不到,你可以登陆到服务器看到recycle中的内容。另外,这些仅仅对于你在客户端删除文件时起作用,你在服务器上使用rm操作,是不会起作用的。

到这设置应该ok了,我们可以使用以下命令来check一下你的配置。

SMB(Server Messages Block)协议:实现局域网内文件或打印机等资源共享服务的协议。

112 Samba服务

1121 安装服务程序

通过安装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    允许写入操作

后面的详细配置可以参考《linux就该这么学》的第十一章,上面有详细的介绍安装和配置步骤,常用的安全级别有share、user,这种服务在企业和公司中用的还是比较多的。

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条评论

发表评论

提供最优质的资源集合

立即查看 了解详情