CentOS下Samba配置

如果你正在处理一个跨操作平台的网络,网络中可能包括Windows,Linux和UNIX的工作站,服务器,那你肯定对怎样在这些不同平台上实现网络打印服务感兴趣

BKJIA独家特稿】本文一步一步介绍了FreeBSD8.1下的samba的基础配置。SMB协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。而Samba是用来实现SMB的一种软件,由澳大利亚的Andew
Tridgell开发,是一种在Linux(Unix)环境下运行的免费软件。通过使用Samba,Linux系统可以实现多种功能。有关Samba服务器更基础的知识,可以参考之前一篇文章:Samba服务器简介与快速配置指南。

检测安装Samba服务
 
 (1).检查Samba服务包是否已安装:
       

上星期,介绍了怎样在Linux上实现网络打印服务。在这部分中,你将学习怎样为Windows
95/98/NT/2000的用户实现这项服务。通过修改你服务器上的Samba配置,你可以让网络中的Windows用户共享你的本地打印机。

作者简介:余洪春博客),网名抚琴煮酒,英文名Andrew.Yu,武汉某外企高级Linux/Unix系统管理员、项目实施工程师,红帽RHCE讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。

rpm -qa | grep samba

请注意,我假设你已经在Linux和Windows之间成功的安装和配置了Samba的文件共享。如果你还没有安装和配置Samba,或者你的Samba不能正常工作,请看文章“省钱之道:用Linux的Samba代替NT服务器”。为了实现我们的目标,我也假设你已经成功安装了一个本地打印机。

一、Samba基础

     
 (2).如未安装,则插入第一张安装盘,执行:
       

配置Samba实现本地打印机共享

1、 简介

mount /mnt/cdrom
       cd
/cdrom/RedHat/RPMS

在开始之前,确信你的Samba运行正常,并且Windows用户可以在网络邻居的列表中看到Samba服务器。我将介绍修改smb.conf文件,使得网络中的Windows用户可以通过Samba服务器使用打印机。

1)SMB协议

   
 (3).进入目录后安装Samba文件:
     注意:运Samba至少需要三个文件,分别为:
          samba-common-2.2.7a-7.9.0.i386.rpm  
 //服务器和客户端均需要的文件
          samba-2.2.7a-7.9.0.i386.rpm              
   //服务器端文件
          samba-client-2.27a-7.9.0.i386.rpm        
 //客户端文件
     
     安装上述3个文件.      
     

为了配置smb.conf文件实现共享一个本地打印机,检查你Linux下的打印机是否工作正常。下一步,在Windows客户端安装同一个打印机。这样做的话,你需要Windows下打印机的安装盘。开始安装打印机,点击开始,选择打印机,并且双击添加打印机。

SMB(Server
MessageBlock,服务信息块)协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。SMB的工作原理是让NetBIOS(Win95网络邻居通信协议)与SMB这两种协议运行在TCP/IP的通信协议上,且使用NetBIOS
nameserver让用户的Linux机器可以在Windows的网络邻居里被看到,所以就可以和Win95/NT主机在网络上相互沟通,共享文件与服务了。

rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm     //另外两个省略不写

在打印机安装向导中,按照屏幕上的说明一步一步,直到在列表中选择打印机的名称。要点:写出打印机的准确名称,注意大小写名称对大小写是敏感的)。例如,Windows中使用的Epson
Stylus
740打印机应该输入如果需要,在安装完成后要重启机器。在Samba服务器上,以根用户登录或是超级用户),用你习惯的文本编辑器打开/etc/smb.conf或者/etc/samba/smb.conf。例如,vi
/etc/smb.conf。

2)什么是Samba

 (4).安装完成后弹出光驱:
       

在[global]这一节,找到打印名称这行,如果你想使Windows用户可以使用所有本地打印机,去掉这一行,并且如果文件中没有这些内容的话,添加上:

Samba是用来实现SMB的一种软件,由澳大利亚的Andew
Tridgell开发,是一种在Linux(Unix)环境下运行的免费软件。

cd;eject

printcap name = /etc/printcap

通过使用Samba,Linux系统可以实现如下功能:

2.设置密码文件.
 
 (1).此设置的作用是将Linux中的系统用户(/etc/passwd)导入到samba密码文件中
     (/etc/samba/smbpasswd)

load printers = yes


文件服务和打印服务(在Linux和Win95/NT之间系统之间提供打印机和磁盘的共享)

       

如果只想让其他用户用一个打印机,你不要删掉那行,也不用添加什么。需要注意的是在大多数从BSD发展而来的Linux系统上,Samba假设你在用默认的打印系统。如果你用的是其他打印系统,在Linux的打印系统配置中,找到相应的行,改变默认设置bsd)。选择包括sysv,plp,lprng,aix,hpux和qnx。如果不能确认你的Linux配置正在使用的打印系统,你可以查看一下相关文件,但大多数情况下都是默认的。

● 登陆服务器,使用Windows客户能注册到网络上

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

下一步,使所有的本地打印机都实现共享。所有的打印机都在/etc/printcap文件的打印机列表中,在/etc/smb.conf文件尾添加以下服务条目:

● 作为主要域控制器和域中成员的功能

 
 (2).接下来给smbpasswd等文件及文件夹设置访问权限.
       

[printers]

● WINS服务器以及浏览功能

chown root:root /etc/samba/smbpasswd
       chmod 600 /etc/samba/smbpasswd
       chmod 600 /etc/samba

writable = no

● 支持SSL(Secure Socket Layer)

     查看一下:
       

path = /tmp

● 支持SWAT (Samba Web Administration Tool )

ll -d etc/samba

printable = yes

Samba除了支持Linux(Unix)和Win95/NT之外,还支持DOS、IBM OS/2、Macintosh
等操作系统。

 
 (3).如果您想手动添加一个用户,则首先要保证Linux中该用户存在,步骤:
       

如果只要共享一个打印机,在smb.conf文件的[global]小节添加一个自动服务行。和在/etc/printcap中的相同,这行指定你想使用的打印机名称。下行中在lp填写默认打印机的名称:

2、Samba的记录文件

useradd austin
      passwd austin
      smbpasswd -a austin    //此步为添加Samba用户

auto services = lp

Samba为smbd、nmbd和访问Samba的客户提供了下列记录文件,分别记录有关smbd、nmbd运行信息和每个客户的访问信息:

  1. 配置/etc/samba/smb.conf文件.
     
     虽然文件内容众多,但需要改动的不多,一般为按需所配:
     
     (1).修改[global](全局配置参数)
         
         

而且,仿照下面创建一个打印机定义,添加到[services]小节中在/etc/smb.conf文件末尾):

记录smbd 信息

workgroup = workgroup    //工作组名称
     
     server string = samba server %v at %h    
//设置服务器名称.%v为版本号,%h为运行
                                                                   
 smb服务的主机名
     
     host allow = 192.168.80. 192.168.70.    //允许访问服务器的主机
     
     client code page = 939   //支持简体中文共享名

[lp]

/var/log/samba/log.smb

     
   上述四条为比较重要的.其他配置大家可按需按情况修改.
 

printable = yes

记录nmbd信息

 (2).创建共享文件夹.
     
   
 由于用户使用权限有多种(读,写,执行),而又访问者又有多种(用户,组),所以创建共享资源的访问方式有多种,下面暂举几例:
     
  例一: 建立资源,使登陆到该服务器的用户均有权使用该空间(包括读,写)
       <1>.编辑smb.conf文件
           

comment = Epson Stylus Color)

/var/log/samba/log.nmb

vi smb.conf

public = yes

记录客户访问信息

           

writable = no

/var/log/samba/log.%m

[resource]
               comment = local resource        
               path = /var/samba/resource      
               read only = no                  
               public = yes                      //允许guest用户访问

browseable = yes

3、在FreeBSD8.1下配置samba34

       
       <2>. 建立共享文件夹
             

printer driver=EPSON Stylus COLOR 740

#cd /usr/ports/net/samba34
#make install clean

mkdir -p /var/samba/resource

定义中的打印机名是lp,这个名称必须和上面自动服务行中的名称相一致,并且也要和在/etc/printcap文件中定义的打印机名称相同或打印机的别名)。需要注意的是,打印机驱动行需要你正确的输入Windows中的打印机信息在这里,EPSON
Stylus COLOR 740,还是需要注意大小写)。

进行默认配置,不进行任何改动

       
       <3>. 由于任何人都能使用,所以得给该文件夹设置访问权限.  
             

最后,保存/etc/smb.conf文件。退出文本编译器,键入/etc/init.d/rc.d/smb重启Samba。

#cp /usr/local/share/examples/samba34/smb.conf.default /usr/local/etc/smb.conf
#vi /usr/local/etc/smb.conf

chmod 707 /var/samba/resource

检测安装

加入如下东西

       
       <4>. 如果想在该文件夹中放置预共享文件,而又不想花
               时间从别的文件夹中cp过来,此时可以使用指针.
           
                比如想共享/usr/share/doc中的文件,则可以:
             
                 

在其中一台Windows工作站上检测你的安装成果

[dev]
path = /usr/local/dev
public = yes
only guest = yes
writable = yes
printable = no

ln -s /usr/share/doc /var/samba/resource/doc