Samba For Linux是一款最初被设计为一个开放源码的服务器消息块(SMB)协议实现基于Linux操作系统。它主要是用来提供打印/文件共享服务的CIFS(通用互联网文件系统)和SMB客户。换句话说,桑巴是标准的当我们谈到之间的互操作性,基于Windows操作系统和Linux / UNIX服务器。如果你想分享Linux / UNIX主机和Windows客户机之间的文件,你需要安装Samba。
软件说明
Samba是设计以这样一种方式,它提供了安全,快速和稳定的无缝文件和打印两SMB/CIFS客户服务。此外,它支持活动目录(AD)。Samba项目是由两个重点项目,中小企业saemon(smbd),负责“用户模式”和“共享模式”的授权和认证过程,和nmbd,用来处理名称解析和浏览。 实现了多种服务和协议 随着时间的推移,Samba项目演变成一个综合的软件,实现了多种服务和协议,包括NBT(TCP / IP协议),DCE/RPC(入侵防护),WINS服务器,安全帐户管理器(山姆)数据库,本地安全机构(LSA)服务,以及更多。它使用TCP / IP协议,允许用户对Linux的分布可以没有任何麻烦,微软Windows操作系统访问创建股份。 应该由Linux发行版默认安装的任何 总体而言,我们认为,应该用在任何Linux Samba配置默认安装,为了让用户能够有效地与其他操作系统共享文件。该软件在后台运行,完全在任何Linux分布很容易安装,直接从其默认的软件库,但它也可以在不同的平台上使用,如OpenVMS,IBM系统390,UNIX,等。 Linux中搭建samba服务器SMB协议是局域网中共享文件/打印机的一种协议,该协议可以为网络内部的Windows和Linux主机提供文件系统、打印服务。SMB的工作原理是让NetBIOS和SMB运行在TCP/IP之上,且使用NetBIOS的nameserver让Linux机器可以在Windows网络邻居中被浏览。这样Windows就可以方便地与linux进行资源的共享了。 Samba是一种用来实现SMB的软件,是运行在Linux环境里的自由软件。它的主要功能包括以下几点: 1.共享目录:就是将服务器上的一个或几个目录设置为共享,例处在同一局域网内的Windows用户可以访问这些目录。 2.共享打印机:可共享服务器中的打印机,供其他客户机使用。 3.控制共享资源的权限:对于设置的资源(目录和打印机),可以通过权限设置,控制不同的用户具有不同的操作权限。 4.在Linux客户端,可以使用smbclient客户端软件登录,与使用FTP类似的方式访问Windows共享资源。 下面来看一下搭建Samba服务器的具体过程: 一、首先就是安装Samba了,可以使用RPM包安装,也可以使用tar源码包来安装。RPM包的话需要安装两个包:samba-common-版本和samba-版本两个包。可以使用rpm-vih 命令来安装。 二、配置服务器的IP地址,一般服务器的IP地址最好使用静态的。具体如何配置,可以参考搭建DHCP服务器那篇。 三、启动Samba服务,启动Samba服务后就可以为客户机提供共享服务了,Samba的守护进程有2个:smbd和nmbd。 1.smbd是Samba的主要启动进程,通过该进程可以让网络内的其他计算机知道Samba服务器共享了哪些资源。 2.nmbd进程用来解析Samba服务器所共享工作组及在些工作组下的netbios name。 四、配置Samba服务器的配置文件,RHEL5的Samba配置文件存放在/etc/samba/smb.conf中。我们可以修改此配置文件来使Samba更为安全的工作。它的配置文件里的参数如下: 1.全局选项 [gloabal]: NetBIOS name:设置Samba服务器的netbios名,这个参数可以不设置,Samba将使用本机域名的第一部分作为该选项的值。 Workgroup:设置当前Samba服务器所要加入的工作组,若security选项设置为domain,则workgroup可以设置为域名。 server string:用来设置本机描述,可以任意写。 security:设置Samba服务器的基本安全级,包括share、user、server和domain4个值。根据设置的不同,用户访问samba服务器共享资源时的认证方式也不同;设置为user时,要求提供用户名和密码进行验证;设置为share时,不需要任何认证;设置为server时,与user安全级类型;设置为domain时,要求网络中存在一台NT PDC,用户名和密码将在NT PDC中进行验证。 注意:一般我们只使用share和user两个安全级,server和domain安全级很少用。 encrypt passwords:设置是否对密码进行加密。由于Windows默认状态下不能传送明文密码,这里建议设置为yes(对密码进行加密)。 username map:该选项的值为一个文件名。所指向的文件中包含来自客户机的用户名与Samba服务器中Linux系统用户名之间的映射。 guest account:设置来宾账户(guest)的用户名,可以是nobody、ftp等不需要密码的用户。 host allow:允许哪些计算机可以访问Samba服务器,可以输入多个IP地址,也可以设置成某个网段。 host deny:与上面host allow相反。 printcap name:设置从指定文件中获取打印机的描述信息(通常是/etc/printcap文件)。 load printers:若设置为yes,表示允许自动加载打印机列表,而不需要单独设置每一台打印机,即不使用配置文件后面[printer]节的内容。 printing:定义打印机系统的类型。 log file:定义日志文件。 max log size:设置日志文件的大小,单位为KB,设置为0,大小不限。 interface:如果服务器有多个网络接口,需要在这里指定使用哪些网络接口。 2.共享选项: comment:对共享目录的注释说明。 writable:用户对共享目录是否可写(注意:如果这里设置为yes,但是你共享的目录用户没有写入权限,那么用户不能往这个共享目录里写入数据)。 browseable:设置用户是否可浏览到该目录(通过指定共享目录名仍然可以访问)。 valid users:可以访问共享目录的用户列表 。 invalid users:与valid users相反。 create mode:在共享目录中创建文件时,对文件设置的权限属性(如0664)。 readonly:设置共享目录是否为只读模式。 public:设置共享目录是否允许匿名访问。 guest ok:与public相同 。 path:设置共享目录对应linux文件系统的哪一个目录。 writable:设置对该共享目录是否为写入权限。 read only:设置共享目录是否为只读(no为可写,yes为只读,注意别与上面的readonly混淆)。 read list:只能以读权限访问共享目录的用户列表。 write list:具有写入权限的用户列表,无论writeable和read list设置的是什么 ,在该选项中设置的用户都具有写权限。 3.特殊设置选项: 在smb.conf文件中,还有两个特殊的节:[home]和[printers],这两节的设置是针对在Samba服务器中拥有账号的用户进行的。 [home] 此项是对在Samba服务器中拥有账号的用户,使用账号登录到Samba服务器后,则可以对应的看到用户自己的home目录,常用选项有: comment、writable、browseable、valid users、create mode、directory mode、readonly这几项,其作用说明同上。 [printers] 此选项定义共享打印机相关选项,使Linux可以通过Samba向网络中其他计算机提供打印服务,常用设置选项如下: comment、path、browseable、gueset ok、writable、printable除最后一项外别的选项上面都有说明,最后一项是指打印机是否允许使用,设置为yes才能使用网络打印。 五、添加Samba用户 当在[gloabal]节中设置security选项为user时,要访问Samba服务器中的共享资源,用户必须输入用户名和密码,经过认证才能访问。这里的用户名必须是Linux系统中存在的用户名,而密码则不一定是登录Shell时的密码,密码可使用Samba提供的程序smbpasswd来单独创建。 注意:通常为了系统的安全,使用useradd命令创建不能登录Shell的用户,并且不使用passwd命令为其设置密码。 smbpasswd命令的使用方法如下: smbpasswd [选项] [用户名] 常用选项: -a :添加用户。 -d :禁止用户。 -e :允许用户。 -x :删除用户。 六、Samba应用实例: 1.匿名Samba服务器: 实例背景:企业计划架设一台Samba服务器,用来向局域网内各客户机提供软件共享服务,常用的软件包都存放在服务器上的/usr/soft/目录中,要求用户只能从该目录中下载东西,而不能上传修改目录中的文件。另外,各客户端还可心利用Samba服务器进行临时文件存放,也就是任何用户都有权限将文件写到服务器上某个目录里,如:/usr/temp/目录下。 根据以上要求配置步骤如下: 首先创建目录/usr/soft/和/usr/temp/,然后修改权限。 #mkdir /usr/soft #mkdir /usr/temp #chmod 755 /usr/soft #chown nobody:nobody /usr/temp #vi /etc/samba/smb.conf #==============================Global settings============================= [global] workgroup = WORKGROUP server string = Samba Server security = share #==============================Share Definitions=========================== [soft] path = /usr/soft public = yes read only = yes [temp] path = /usr/temp public = yes read only = no #service smb restart 以上就是根据公司要求搭建的匿名Samba服务器,下面我们来看一下如何设置需要身份验证的Samba服务器配置,修改以上案例达到以下要求: 1.soft目录:保存常用软件,所有用户都只有读的权限,管理员admin除外,admin可以向该目录写入文件,用来更新安装软件包。 temp目录:仍然作为临时的文件交换目录,的有用户都可以进行读写操作。 tech目录:保存技术部的资料,该目录只有技术部的员工可以进行读写操作,其他人员不能访问(经理manager可访问该目录,不能修改)。 market目录:保存市场部的资料,该目录只有市场部的员工可以进行读写操作,其他人员不能访问(经理manager可访问该目录,不能修改)。 实现以上案例要求的步骤如下: #groupadd tech #groupadd market #useradd -s /sbin/nologin admin #useradd -s /sbin/nologin manager #useradd -g tech -s /sbin/nologin li #useradd -g market -s /sbin/nologin wei #smbpasswd -a admin 输入密码: #重复以上命令把每个用户都建立好后 #mkidr /home/tech #mkidr /home/market #chown manager:tech tech #chown manager:market market #chmod 570 /home/market #chmod 570 /home/tech #chmod 777 /usr/temp #chown admin /usr/soft 做完上面的步骤后,然后修改配置文件,在配置文件里面添加以下条目: #=====================Global Setting================== [global] workgroup = WORKGROUP server string = Samba Server security = user ======================Share Definitions================ [soft] path = /usr/soft public = yes writable = no write list = amdin [temp] path = /usr/temp public = yes writable = yes [tech] path = /home/tech valid users = manager,@tech write list = @tech read list = manager [market] path = /home/market valid users = manager,@market read list = manager write list = @market :wq 修改好配置文件后保存退出,然后重启smb服务:service smb restart 以上就是Samba服务器的搭建,搭建完之后可以到Windows客户端上输入//Samba服务器的IP地址,来验证实验是否成功。
|