在Linux中搭建 samba服务器

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

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

 (2)它的主要做用是什么;安全

 (3)它在什么状况下会使用到。服务器


SMB协议
网络

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

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

   

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

        1.共享目录:就是将服务器上的一个或几个目录设置为共享,例处在同一局域网内的Windows用户能够访问这些目录。
        2.共享打印机:可共享服务器中的打印机,供其余客户机使用。
        3.控制共享资源的权限:对于设置的资源(目录和打印机),能够经过权限设置,控制不一样的用户具备不一样的操做权限。
        4.Linux访问Windows共享资源:在Linux客户端,可使用smbclient客户端软件登陆,与使用FTP相似的方式访问Windows共享资源
.net



搭建Samba服务器:rest

1、首先就是安装Samba了,可使用RPM包安装,也可使用tar源码包来安装。RPM包的话须要安装两个包:samba-common-版本和samba-版本两个包。可使用rpm-vih 命令来安装。
2、配置服务器的IP地址,通常服务器的IP地址最好使用静态的。具体如何配置,能够参考搭建DHCP服务器那篇。
3、启动Samba服务,启动Samba服务后就能够为客户机提供共享服务了,Samba的守护进程有2个:smbd和nmbd。
    1.smbd是Samba的主要启动进程,经过该进程可让网络内的其余计算机知道Samba服务器共享了哪些资源。
    2.nmbd进程用来解析Samba服务器所共享工做组及在些工做组下的netbios name。
4、配置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才能使用网络打印。


5、添加Samba用户
    当在[gloabal]节中设置security选项为user时,要访问Samba服务器中的共享资源,用户必须输入用户名和密码,通过认证才能访问。这里的用户名必须是Linux系统中存在的用户名,而密码则不必定是登陆Shell时的密码,密码可以使用Samba提供的程序smbpasswd来单首创建。
注意:一般为了系统的安全,使用useradd命令建立不能登陆Shell的用户,而且不使用passwd命令为其设置密码。
smbpasswd命令的使用方法以下:
smbpasswd    [选项]    [用户名]
经常使用选项:
-a :添加用户。
-d :禁止用户。
-e :容许用户。
-x :删除用户。



6、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地址,来验证明验是否成功。

相关文章
相关标签/搜索