在Linux中搭建 samba服务器

下面说一下如何在RHEL5.4中搭建samba服务器,在搭建samba服务器之前要了解:

 (1)samba服务器是干什么用的;

 (2)它的主要作用是什么;

 (3)它在什么情况下会使用到。


SMB协议

     SMB协议是在局域网中共享文件/打印机的一种协议,该协议可以为网络内部的Windows和Linux主机提供文件系统、打印服务。

SMB的工作原理是让NetBIOS和SMB运行在TCP/IP之上,且使用NetBIOS的nameserver让Linux机器可以在Windows网络邻居中被浏览。这样Windows就可以方便地与linux进行资源的共享了。

   

Samba
      Samba是一种用来实现SMB的软件,是运行在Linux环境里的自由软件。
它的主要功能包括以下几点:

        1.共享目录:就是将服务器上的一个或几个目录设置为共享,例处在同一局域网内的Windows用户可以访问这些目录。
        2.共享打印机:可共享服务器中的打印机,供其他客户机使用。
        3.控制共享资源的权限:对于设置的资源(目录和打印机),可以通过权限设置,控制不同的用户具有不同的操作权限。
        4.Linux访问Windows共享资源:在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地址,来验证实验是否成功。


你可能感兴趣的:(在Linux中搭建 samba服务器)