天天看点

Linux全攻略--Samba服务器配置与管理(一)

        SMB(Samba简称)是一组通信协议,它运行于Unix.OS/2和MS-Windows系统之间,以实现文件共享和打印机共享服务,WIDOWS客户机通过NetBIOS对话传送服务器消息来使用服务器的文件和打印机资源.NETBIOS定义了运行于DOS上的网络界面,但没有规定实际用来传送数据的网络协议.Samba使用NetBIOS over TCP/IP,这种方式有很多优点.

       SMB使LINUX计算机在网络邻居中看起来如同一台WINDOWS计算机.WINDOWS计算机的用户可以登录到LINUX计算机中,从LINUX文件系统中复制文件等.

一、启动Samba 

可以图形化启动,也可以命令行启动方式。

先检查下安装没,这里可以看到安装好了。

然后命令方式启动,成功。

二、smb.conf文件说明

下面看文件的说明

[global]                                           //设置整体环境

   workgroup = MYGROUP  //设置工作组名称,该名称会出现在WINDOWS的网上邻居和LINUX的网络服务器中。

   server string = Samba Server   // 服务器名说明

;   hosts allow = 192.168.1. 192.168.2. 127.   此选项对于安全性非常重要,它严格限制了可访问Samba Server的IP范围,默认是允许所有的IP访问,如果设置,那么设置好这后应去掉前面的“;”号

   printcap name = /etc/printcap   // 设置打印机配置文件路径

   load printers = yes           //是否将打印机共享

;   printing = cups  //打印机的类型,若使用的打印机是LINUX标准型的,则不需要更改打印机类型,通常标准型的打印机类型包括:bsd,sysv,plp,lprng,aix,hpux,qnx和cups

cups options = raw  // 

;  guest account = pcguest //如果想让用户“pcguest:以匿名用户身份登录,去掉前面的“;”号,并确保在/etc/passwd中有此用户,这里的“pcguest“可以根据需要改成用户自己设置的本地用户。

 log file = /var/log/samba/%m.log   // log会在此目录中为每个登录Samba的用户建立不同的日志文件。

   max log size = 50  //定义了文件夹的大小,默认是不对日志文件做大小限制的

下面是关于安全级别的设置

security = user  // 安全级别,提供了4种安全等级:share,user,server,domain

;   password server = <NT-Server-Name> //密码验证服务器,当用户从WINDOWS通过SAMBA使用LINUX时,会自动传送登录WINDOWS时的用户名与密码给SAMBA,然后SAMNBA向PASSWORD SERVER验证这两项信息是否正确,若不正确,则会出现对话框,要求用户重新输入。(WINDOWS NT和WINDOWS2000也会如上,WINDOWS98只会要求输入密码,因此建议与LINUX账号相同的名称来登录WINSOW98。)而这个密码服务器可以是WINDOWS NT SERVER(通常是主域控制器),或是另外一个SAMBA SERVER。因此若SECURITY=SERVER,则需要指定密码服务器,若SECURITY=SHARE,则需删除关于密码服务器的那一行。

;  password level = 8    //密码级别设置

;  username level = 8

;  encrypt passwords = yes// 用户密码要加密,由于现在WINDOWS98/NT皆使用加密的密码,因此要有这一项,当然也可以要求使用不加密的密码。

;  smb passwd file = /etc/samba/smbpasswd  //奖密码服务器设置为SAMBA SERVER时,需要用此行来指定要验证的密码文件,若设置为WIDOWS NT SERVER,则不需要此行,这里最重要的是密码文件设置的路径。

;  unix password sync = Yes  

;  passwd program = /usr/bin/passwd %u  //接下来的两行设置用来容许WINDOWS密码改变后更新LINUX系统的密码,确定“encrypt passwords“和"smb passwd file“项被启用

;  passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*

;  username map = /etc/samba/smbusers//在此文件中设置对应的用户名称

;   include = /etc/samba/smb.conf.%m  //在此行允许用户自己定义每台计算机的基本配置文件,%m代表NETBIOS正在连接的计算机名称。

   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192  //设置服务器和客户之间会话的socket选项,此项设置将优化传输速度。

;   interfaces = 192.168.12.2/24 192.168.13.2/24  //如果有多网络界面必须在此列出

;   remote browse sync = 192.168.3.25 192.168.5.255 // 本行和下一行是远程浏览设置

;   remote announce = 192.168.1.255 192.168.2.44

;   local master = no

;   os level = 33

;   domain master = yes 

;   preferred master = yes 

;   domain logons = yes

;   logon script = %m.bat

;   logon script = %U.bat

; name resolve order = wins lmhosts bcast

;   wins support = yes

;   wins server = w.x.y.z  //WINS客户端设置

;   wins proxy = yes障碍

   dns proxy = no   //DNS PROXY设置,默认是不为客户做DNS查询

;  preserve case = no

;  short preserve case = no

;  default case = lower

;  case sensitive = no

#============================ Share Definitions ==============================

   idmap uid = 16777216-33554431

   idmap gid = 16777216-33554431

   template shell = /bin/false

   winbind use default domain = no

[homes]   //用户访问自己目录的设置

   comment = Home Directories  //说明文件或目录类型

   browseable = no    //用户私人目录,不需要给别人浏览

   writable = yes    //用户写入自己目录的权限

# Un-comment the following and create the netlogon directory for Domain Logons

; [netlogon]  //域用户登录目录设置

;   comment = Network Logon Service

;   path = /home/netlogon

;   guest ok = yes

;   writable = no

;   share modes = no

# Un-comment the following to provide a specific roving profile share

# the default is to use the user's home directory

;[Profiles]   //默认PROFILE设置

;    path = /home/profiles

;    browseable = no

;    guest ok = yes

# NOTE: If you have a BSD-style print system there is no need to 

# specifically define each individual printer

[printers]   //打印机设置

   comment = All Printers    //说明要把全部打印机共享

   path = /var/spool/samba   //打印机池,用户必须自行创建目录

   browseable = no   //此地存放打印机的临时文件

# Set public = yes to allow user 'guest account' to print

   guest ok = no

   writable = no

   printable = yes  //用户是否可以打印

# This one is useful for people to share files

;[tmp]   //用户共享资源设置(可定义新的共享目录)

;   comment = Temporary file space   //说明

;   path = /tmp  //共享目录设置

;   read only = no  //是否只读或可写入

;   public = yes   //是否共享

# A publicly accessible directory, but read only, except for people in

# the "staff" group

;[public]  //用户资源共享设置

;   comment = Public Stuff

;   path = /home/samba

;   public = yes

;   read only = yes

;   write list = @staff

# Other examples. 

#

# A private printer, usable only by fred. Spool data will be placed in fred's

# home directory. Note that fred must have write access to the spool directory,

# wherever it is.

;[fredsprn]

;   comment = Fred's Printer

;   valid users = fred

;   path = /homes/fred

;   printer = freds_printer

;   public = no

;   printable = yes

# A private directory, usable only by fred. Note that fred requires write

# access to the directory.

;[fredsdir]

;   comment = Fred's Service

;   path = /usr/somewhere/private

;   writable = yes

;   printable = no

# a service which has a different directory for each machine that connects

# this allows you to tailor configurations to incoming machines. You could

# also use the %u option to tailor it by user name.

# The %m gets replaced with the machine name that is connecting.

;[pchome]

;  comment = PC Directories

;  path = /usr/pc/%m

;  public = no

;  writable = yes

# A publicly accessible directory, read/write to all users. Note that all files

# created in the directory by users will be owned by the default user, so

# any user with access can delete any other user's files. Obviously this

# directory must be writable by the default user. Another user could of course

# be specified, in which case all files would be owned by that user instead.

;[public]

;   path = /usr/somewhere/else/public

;   only guest = yes

# The following two entries demonstrate how to share a directory so that two

# users can place files there that will be owned by the specific users. In this

# setup, the directory should be writable by both users and should have the

# sticky bit set on it to prevent abuse. Obviously this could be extended to

# as many users as required.

;[myshare]

;   comment = Mary's and Fred's stuff

;   path = /usr/somewhere/shared

;   valid users = mary fred

;   create mask = 0765

三.配置Samba服务器

1.配置share级服务器.

share级在4个等级中是最低的,配置方法也是最简单.只需修改/etc/smb.conf文件如下:

看最后一行,允许IP段访问.

看光标所在处,这里需要指定一个用户账号,yang是服务器中已经存在的一个账号.

光标处是share

[tmp]这里是可以设置要共享的任何目录.

设置好后要检查正确性了.

执行testparm命令.测试smb.conf的正确性

有"OK"表示加载正常.

下面按ENTER

上面列出了配置的情况

执行snvclient命令查看资源共享情况.

最后要重新启动Samba服务.使配置文件生效.

下面来看测试.

这是在WINDOWS上,打开网上邻居.可看到配置时显示的名称LINUX.

进去以后看到服务器.

可看到配置的共享文件夹TMP

进去后可访问里面的内容了.可知配置成功.

然后来看用LINUX客户访问

在LINUX系统中,打开应用程序/网络服务器.然后点WINDOWS网络.

可看到LINUX

可看到刚才第一个画面的HAIDA,其实是一样的.

可看到共享文件夹是一个卷.

进去后同样可访问其内容了.

     本文转自yangming1052 51CTO博客,原文链接:http://blog.51cto.com/ming228/109993,如需转载请自行联系原作者

继续阅读