随着计算机网络的发展,实现不同操作系统的文件和打印共享成为一个必然的趋势。用过Windows的用户都知道,网上邻居是一个可以方便地访问其他Windows计算机资源的共享方式。为了使Windows用户以及Linux用户能够互相访问彼此的资源,Linux提供了一套资源共享的软件——Samba服务器。
4.1 SMB协议和Samba简介
4.1.1 SMB协议
为了使Windows 主机间的资源能够共享,微软于1980年开发了SMB(Server Message Block)通信协议,并通过SMB通信协议,使网络上各台主机之间能够共享文件、打印机等资源。目前类似这种资源共享的通信协议还有NFS、Appletalk、Netware等。
4.1.2 Samba简介
这些年来,Windows 和Linux 操作系统各自拥有自己的用户群和市场。然而在一般的公司或学校里,可能同时有Windows 和Linux 操作系统的主机。Windows 主机彼此间可利用“网上邻居”来访问共享的资源,NFS也能使Linux 主机之间实现资源共享。但如何能使Windows 主机和Linux主机之间实现资源共享呢?
微软的“网上邻居(就是Windows 上利用SMB通信协议实现资源共享的程序)”一经推出,便广受用户的好评,大家突然觉得原来要在网上共享资源尽是那么简单,有鉴于此,便有一些Linux 爱好者开始在Linux 主机上实现SMB通信协议,后来这个实现了SMB功能的软件既被称为 Samba ,它使得Windows 主机和Linux主机之间实现了资源共享。
4.1.3 Samba软件的功能
由于SMB通信协议采用的是Client/Server架构,所以Samba 软件可以分为客户端和服务器端两部分。通过执行Samba 客户端程序,Linux 主机便可以使用网络上Windows 主机所共享的资源;而在Linux 主机上安装Samba 服务器,则可以使Windows 主机访问Samba 服务器共享的资源
Samba 提供了以下功能:
(1)共享Linux 的文件系统
(2)共享安装在Samba 服务器上的打印机
(3)使用Windows 系统共享的文件和打印机
(4)支持 Windows 域控制器和Windows 成员服务器对使用Samba 资源的用户进行认证
(5)支持WINS名字服务器解析及浏览
(6)支持SSL安全套接层协议
4.2 安装和启动Samba
Samba 软件安装在Linux 一端。目前主要由一个20人左右的Samba 团队负责维护及开发,用户可以在http://www.samba.org/站点获得Samba的详细信息。同时,也可以在网页上下载Samba 的最新版本
4.2.1 安装Samba服务器
如果用户在安装Linux 时已经安装了Samba ,就无需再安装了可以通过下列命令确定是否已经安装了Samba 。
[root@ smb_server root]# rpm –qa | grep samba
samba-commom -2.2.7a-7.9.0
samba-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
redhat-config-samba-1.0.4-1
samba-swat-2.2.7a-7.9.0
若出现这5个软件包,则表示已经安装了Samba ,否则必须安装Samba 。
[root@smb_server root]# mount /dev/cdrom /mnt/cdrom
将光盘挂载到 /mnt/cdrom目录]
[root@smb_server root]# cd /mnt/cdrom/RedHat/RPMS
切换到放置rpm文件的目录
[root@smb_server root]# rpm -ivh samba-commom -2.2.7a-7.9.0i386.rpm
这是Samba 必备的程序,必须安装
[root@smb_server root]# rpm -ivh samba-2.2.7a-7.9.0.i386.rpm
安装Samba 服务器程序,可以使我Windows 主机访问Samba 服务器共享的资源。
如果需要使Linux 主机访问Windows 主机上的共享资源,则还应该安装Samba 客户端程序。
[root@smb_server root]# rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm
4.2.2 Samba的全局参数的配置
Samba最主要的配置文件是 /etc/samba/smb.conf,其中有很多选项可以设置,但作为初学者,只需要掌握其中一小部分选项的设置就可以配置所需要的Samba服务器了。在了解基本配置的基础上,就能很快架设一个基本的Samba服务器。在基本配置文件中,也只用到其中一小部分命令选项。
全局参数的配置在[global]字段中,没有出现(或被注释)的参数,Samba 采用的是默认配置。
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#================== Global Settings ============================
[global]
#这是配置文件中关于全局参数的设置部分。
…………
workgroup = SMBGROUP
#这是设置服务器所要加入的工作组的名称,会在Windows 的“网上邻居”中能看到MYGROUP工作组,可以在此设置所需要的工作组的名称。
netbios name=smb-server
#设置出现在“网上邻居”中的主机名。默认情况下,则使用真正的主机名。
server string = Samba Server
#这是设置服务器主机的说明信息,当在Windows 的“网上邻居”中打开Samba 上设置的工作组时,在Windows 的资源管理器窗口,会列出“名称”和“备注”栏,其中“名称”栏会显示出Samba服务器的NetBios名称,而“备注”栏则显示出此处设置的“Samba Server”。当然,可以修改默认的“Sambe Server”,使用自己的描述信息。
hosts allow = 192.168.1. 127
#这里是设置允许什么样的IP地址的主机访问Samba服务器。默认的情况下,hosts allow选项被注释,表示允许所有IP地址的主机访问。
guest account = pcguest
#设置当访问那些被设置了“guest ok=yes”参数的资源时所要使用的帐号名。默认的帐号为”nobody”,如果不想用默认的值,则应该去掉注释用的分号,用你想要的帐号(如pcguest、 zhangsan等 ),然后,你必需将这一新帐号加入到/etc/passwd文件中去。
client code page=950
设置客户端访问Samba 服务器时所使用的字符编码表(code page),默认值为850,如果Samba 服务器要使用年中文名称来来命名共享的资源,要将此值改为950
log file = /var/log/samba/%m.log
#这一选项要求Samba服务器为每一个连接的机器使用一个单独的日志文件,指定文件的位置,名称。Samba会自动将%m转换成连接主机的NetBios名。
max log size = 0
指定日志文件的最大容量(以KB为单位),设置为0,表示没有限制。默认值为5000。
max disk size =1000
#设置能够共享的最大磁盘空间,单位为MB,默认值为0,表示不作任何限制。
max open file =100
#设置同一客户端最多能打开文件的数目,默认值为10000个。
security = user
#设置Samba服务器的安全等级。默认情况下,使用user等级。
#Samba服务器一共有四种安全等级。
share: 使用此等级,用户不需要帐号及密码可以登陆Samba服务器。
user: 使用此等级,由提供服务的Samba服务器检查用户帐号及密码。
server: 使用此等级,检查帐号及密码的工作可指定另一台Samba服务器负责。
domain: 使用此等级,需要指定一台Windows NT/2000/XP服务器(通常为域控制器),以验证用户输入的帐号及密码。
; password server = <NT-Server-Name>
#如果安全等级为“server”或“domain”,则使用此选项指定要验证密码的主机名。
password level = 8
username level = 8
#设置当验证用户口令和帐号时最多允许几个大小写字不同。默认值为0。
encrypt passwords = yes
#设置当Samba客户端将帐号及密码传送到服务器端时,是否采取密码加密的方式。客户的操作系统如果是Windows 95 OSR2 及NT SP3以后的版本,应该将此选项的值设为yes,默认值为no。
smb passwd file = /etc/samba/smbpasswd
#设置在Samba服务器上存放加密的密码文件的位置(注意:Samba服务器与Linux采用不同的密码文件)。
4.2.3 设置Samba密码文件
smb.conf 文件中有“smb password file =/ect/samba/smbpassword”一行设置项,现在就要创建该设置项所指定的/ect/samba/smbpassword密码文件(若是用Windows NT/2000Server 来验证密码,则可以跳过此段内容)。以root帐号登录,然后按下列步骤进行:
[root@smb_server root]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root@ smb_server root]# chmod 500 /etc/samba
[root@ smb_server root]# chmod 600 /etc/samba/smbpasswd
此步骤是将未加密的/etc/passwd文件转换成加密的smbpasswd文件。基于保密的原则,将/etc/samba目录的权限设为500,该文件的权限设为600,以避免他人取得密码文件。
完成之后再利用smbpasswd命令,设置/ect/samba/smbpassword文件中每个帐号所使用的密码。(下面以fred为例。注意:此处设置的密码是fred要访问Samba服务器的密码,并非登录Linux 主机的密码,默认设置”UNIX password sync=YES”, 则登录Linux 主机的密码将改变,与Samba服务器的密码一致,如果希望这两个密码不一致,则设置”UNIX password sync=NO”)
[root@smb_server root]# smbpasswd fred
New SMB password: 此处输入密码
Retype SMB password: 重新输入密码
Password changed for user fred 看到这一句表示密码设置成功。
4.2.4 启动Samba服务器
可以执行下面的命令来启动Samba服务器:
[root@ smb_server Root]# service smb start
当能看到下面的显示,就表示启动成功。
Starting SMB service [确定]
Starting NMB service [确定]
如果要暂停或重新启动Samba服务器,只要将上面命令中的start 改为stop或restat就可以了。
也可以让系统在每次开机时就启动Samba服务器。执行ntsysv命令,进入Service设置画面,选择smb选项,单击确定即可。
4.2.5 测试Samba配置文件
设置好smb.conf文件之后,执行下面的命令测试smb.conf的设置语法是否正确。
[root@smb_server root]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[tmp]"
Processing section "[public]"
Processing section "[fredsdir]"
Loaded services file OK.
Press enter to see a dump of your service definitions
表示正确。
检查正常后,一定要记得执行
[root@smb_server root]# service smb restart
命令,重新启动Samba服务器。
4.3 配置Samba 文件共享
完成了全局环境的设置之后,可以设置共享的资源(包括共享的文件和打印机)了。先来介绍如何配置Smb.conf,实现文件的共享。
4.3.1 设置共享资源参数
comment
#针对共享资源所作的说明、注释部分
browseable
#设置用户是否可以看到此共享资源。默认值为yes,若将此参数设置为no,用户虽然看不到此资源,但是拥有权限的用户仍可直接输入该资源的网址来访问该资源。
writable
#设置共享的资源是否可以写入。若共享资源是打印机,则不需设置此参数
#设置可访问的用户。系统会自动将%S转换成登录帐号。
create mode
# 设置文件的访问权限,默认值为0744。
directory mode
设置目录的访问权限,默认值为0755。
path
#若共享资源是目录,则指定目录的位置;若为打印机,则指定打印机队列的位置。
read only
#设置共享资源是否只读或可以写入,默认值为yes。若共享资源为打印机时,此参数无任何意义。这一项与writable相反。
Public
#等同于guest ok选项,表示是否允许用户不使用帐号和密码便能访问此资源。如果起用此功能,当用户没有帐号和密码时,则会利用“guest account=”所设置的帐号名登录。该选项默认值为no,即不允许没有帐号即密码的用户使用此资源。
avalible
#设置是否启用此共享资源。默认值为yes。若将此参数设置为no,则不管其他参数设置为什么,所有人均不得使用此资源。
valid users
4.3.2 配置Samba文件共享举例
以下通过配置3个不同的共享目录为例,可以知道配置Samba文件共享的一般方法。
[global]
…………
#采用前面的[global]配置
[homes]
#用来配置用户访问自己的目录
comment = Home Directories
#注释
browseable = no
#用户私人目录,不给别人浏览(并不是不允许别人访问)
writable = yes
#允许用户写入自己的目录
valid users = %S
#可访问的用户局限于用户自己。%s会被自动转换为登录帐号。
create mode = 0664
#文件的访问权限
directory mode = 0775
#目录的访问权限
# This one is useful for people to share files
[tmp]
#这个部分为所有用户提供临时共享的方式
comment = Temporary file space
#注释文字
path = /tmp
#指定位置
read only = no
#可以读写
public = yes
#允许用户不用帐号和密码访问
[public]
# 这个部分为所有用户提供可以共同访问的目录。允许staff组用户写入,但其他用户只可访问,不能写入。
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
printable = no
write list = @staff
# write list参数是用来设置具有写权限的用户列表。这里只允许staff组的成员有写的权限
[fredsdir]
#这个部分用来设置某一用户fred的访问权限。
comment = Fred’s Service
path = /usr/fred/private
valid users = fred
#只有fred可以访问(注意:即使security=share,也不代表用户登录Linux 主机后可以访问任意资源。)该共享目录
public = no
writable = yes
printable = no
说明:配置文件修改后,要重新用testparm测试配置文件,重新启动Samba 服务器程序。
分享到:
相关推荐
Samba服务器是一种基于SMB/CIFS协议的文件和打印机共享服务器,主要用于Linux和Windows之间的资源共享。下面是Samba服务器配置及访问Samba共享的知识点总结: 一、Samba服务器安装 * 使用rpm命令安装Samba服务器...
Linux下Samba服务器的搭建——实现LINUX与WINDOWS之间文件共享 ...本文提供了一个详细的Samba服务器安装和配置指南,旨在帮助读者快速掌握Samba服务器的安装和配置,实现Linux与Windows之间的文件共享。
1. system-config-samba-docs-1.0.9-1.el7.noarch.rpm:这是System-config-samba的文档包,包含了使用和配置该工具的指南和帮助信息。对于初次接触System-config-samba的用户来说,这些文档是了解其功能和操作的重要...
《Linux服务器配置与管理》教学课件...总的来说,Samba服务器配置是Linux服务器管理中的一项重要技能,它让多平台间的资源共享变得简单和高效。正确配置和管理Samba不仅可以提高工作效率,也能增强网络环境的协作能力。
通过搭建Samba服务器实现Linux与Windows资料共享的步骤 上海嵌入式家园-开发板商城 联系人:贺工(嵌入式高级系统工程师) 电话: 13917077026 QQ: 844698468 MSN: embedclub@hotmail.com Email:embedclub@vip.qq....
Samba客户端命令用于连接到Samba服务器,查看共享资源,传输文件等: 1. 解析主机IP: ``` smblookup test smblookup * ``` 2. 查看目标主机的共享列表: ``` smbclient -L test/192.168.60.110 smbclient -...
Linux下配置Samba服务器 Linux操作系统中配置Samba服务器是一个重要的主题,特别是在企业中,Linux系统和...通过配置Samba服务器,可以实现Linux系统和Windows系统之间的资源共享,提高企业网络资源利用率和工作效率。
Samba服务器的配置与使用对于实现Linux与Windows之间的文件共享至关重要。通过深入了解Samba的工作原理、功能以及SMB协议的相关知识,可以帮助系统管理员更好地管理和优化Samba服务器,从而提高网络环境中不同操作...
### Linux资源共享:Samba服务详解 #### 一、Samba简介 Samba是Linux系统下的一种文件共享服务软件,主要用于实现Linux系统与Windows系统之间的资源共享。通过Samba服务,可以在不同操作系统之间无缝传输文件和目录...
Samba 采用客户机/服务器模型,这意味着同一台机器既可以作为 Samba 服务器提供资源共享,也可以作为 Samba 客户端访问其他 Samba 或 Windows 共享资源。 #### 二、系统环境配置 本节将详细介绍如何在 CentOS 6.5 ...
本实验旨在通过实际操作,使学生掌握Linux与Windows之间资源共享的方法,包括Samba服务器的安装、配置及其使用过程中的关键步骤。通过本次实验,学生将能够实现Linux与Windows系统的资源共享与互访。 #### 二、实验...
Samba 是一个用于在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的软件包,它允许不同操作系统之间的文件和打印共享。本篇文章将详细介绍如何在 CentOS 7 上安装、配置并启用 Samba 服务,同时也会讲解如何配置防火墙和...
通过上述步骤,可以成功在Ubuntu系统上安装并配置samba服务器,实现Linux和Windows系统之间的资源共享。整个过程中涉及到的samba配置,用户管理,服务重启和网络连接测试等环节都是实现跨平台资源共享的关键知识点。
Windows 计算机的用户可以“登陆”到 Linux 计算机中,从 Linux 中复制文件,提交打印任务,从而使 Linux 与 Windows 的资源共享变得非常容易。 Samba 服务器的安装需要安装三个软件包:Samba 服务器软件、Samba-...
- **跨平台资源共享**:Samba允许Linux/Unix系统与Windows系统之间实现文件共享和打印服务。 - **支持SMB/CIFS协议**:Samba在Linux环境中实现了Windows系统所用的SMB/CIFS协议,使得两种操作系统间的通信成为可能。...
Samba服务器是一种在Linux和Windows之间实现文件和打印机共享的解决方案,它使得不同操作系统间的网络资源得以无缝对接。本文将详细介绍如何在CentOS 7虚拟机和Windows Server 2012上搭建Samba服务器。 一、Linux...
Samba服务器在Linux环境中扮演着重要的角色,尤其是在跨平台文件和打印共享方面。在CentOS 6.5系统中,Samba允许Linux和Windows系统之间无缝地交换数据。本文将详细介绍如何在CentOS 6.5上安装和配置Samba服务器。 ...