2.3  
 日志记录参数  
 
 log file  
 
 
 说明:这个参数指定日志文件的名称,路径一般放在 
 /var/log/samba 
 ,可以在文件名后加个宏 
 %m 
 表示对每台访问 
 samba 
 的机器都单独记 
 
 
 录一个日志文件。  
 例如:  
 log file =
 /var/log/samba/log.%m 
 ,如果 
 host1 
 、 
 host2 
 这台机器访问过 
 samba 
 ,就会留下 
 log.host1 
 、 
 log.host2 
 这 
 
 
 两个日志文件。  
 
max log size  
 说明:这个参数指定最大日志文件的大小,以 
 KB 
 为单位。例如: 
 max log size = 50k 
 。  
 
2.4  
 协议参数  
 
 announce version
 
 说明:指定服务器的宣告版本号,默认是 
 4.2 
 ,如果在 
 WINDOWS 
 的网上邻居里查看 
 samba 
 服务器的属性,就可以看见在类型一行里有 
 
 Windows NT 4.2 Server  
 的字样。一般不要去更改它,如果你要让 
 samba 
 模拟 
 NT 
 像一点的话,可以改成 
 4.0 
 。  
 
2.5  
 计算机浏览参数  
 
 os level
 
 说明: 
 os level  
 的值是个整数,决定了 
 nmbd 
 是否有机会成为本地广播区域的工作组里的本地主浏览器,默认值是零,零则意味着 
 nmbd 
 失去浏览选择。如果要 
 nmbd 
 更有机会成为本地主浏览器的话,可以设为 
 65 
 。  
 
 preferred master
 
 说明:这个参数指定 
 nmbd 
 是否是工作组里的首要的主浏览器 
 ,如果指定为 
 yes 
 , 
 nmbd 
 在启动的时候就强制一个浏览选择。指定该参数为 
 yes 
 时最 
 
 
 好把 
 domain master  
 也指定为 
 yes 
 。用这个参数的时候要注意的是在 
 samba 
 服务器所在的子网上如果有其它的机器(不管是 
 WINDOWS
 NT 
 还是另一个 
 samba 
 服务器)也指定为首要的主浏览器时,这些机器都会因为争夺主浏览器而在网络上广播,引起不必要的网络性能下降。  
 
 local master
 
 说明:这个参数指定 
 nmbd 
 是否试图成为本地主浏览器,默认值是 
 yes 
 ,如果设为 
 no 
 则 
 samba 
 服务器就永远都不会成为本地主浏览器。但即使设置了 
 yes 
 ,也不等于 
 samba 
 服务器就会成为本地主浏览器。只是参与本地主浏览器选择。  
 
 domain master
 
 说明:这个参数让 
 nmbd 
 成为一个域浏览器,取得各本地主浏览器的浏览列表,并把整个域的浏览列表递交给各本地主浏览器 
 。默认值是 
 no 
 。如果网络上已经有一台 
 NT PDC 
 ,就不要把这个参数设为 
 yes 
 ,争不过 
 NT PDC 
 的。 
 
 
 另外,如果你对计算机浏览服务不是很清楚的话,可以参考 
 NT 
 网络管理资料 
 。  
 
2.6  
 共享资源设置参数  
 
 comment
 
 说明:就是对共享的描述,可以是任意的字符串。例如: 
 comment = Share Stuff 
 。  
 
 path
 
 说明: 
 path 
 是提供共享服务的路径,可以用 
 %u %m 
 这样的宏来代替路径里的 
 unix 
 用户和客户机的 
 Netbios 
 名。  
 
 
 例如:如果我们不打算用 
 home 
 段做为客户的共享,而是在 
 /home/share/  
 下为每个 
 Linux 
 用户以他的用户名建个目录,作为他的共享目录,这样 
 path 
 就可以写成: 
 path = /home/share/%u;  
 。  
 
 
 用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是 
 
 
 以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问 
 samba 
 的机器都各自建个以它的 
 netbios 
 名的路径,作为不同机器的共享资源,可 
 
 
 以这样写 
 path 
 : 
 path = /home/share/%m  
 。  
 
 writeable
 
 说明:指定共享路径是否可以写,值是 
 yes 
 或 
 no 
 。  
 
 browseable
 
 说明:指定共享是否可以浏览,默认是 
 yes 
 。  
 
 available
 
 说明:指定共享资源是否可用,默认是 
 yes 
 ,设为 
 no 
 则关闭该资源的共享服务,用户无法连接到该资源上。  
 
 exec[ 
 执行 
 ]  
 和  
 postexec 
 , 
 root preexec  
 和  
 root postexec
 
 说明:指定在用户与共享资源在连接和断开时在服务器上执行一个命令,这两对参数很有用,区别是 
 root preexec  
 和 
 root preexec  
 是以 
 root 
 的权限运行 
 。比如在服务器把 
 cdrom 
 作为共享,但 
 cdrom 
 是不能一直处于装配状态的。我们可以这样设置  
 
 [cdrom]
 
    
 comment = Server Cdrom
 
    
 path = /mnt/cdrom
 
    
 public = yes
 
    
 browseable = yes
 
    
 root preexec = /bin/mount -t isoArray660 /dev/cd0 /mnt/cdrom
 
    
 root postexec = /bin/umount /mnt/cdrom
 public
 
 说明:这个参数指明是否允许 
 guest 
 帐户访问,值为 
 yes 
 或 
 no 
 ,另一个和 
 public 
 相同意义的参数是 
 guest ok 
 。 
 打印共享还有些专用的打印参数,阐述如下:  
 
 load printers
 
 指定在 
 samba 
 启动时是否自动把 
 printcap 
 文件里的所有打印机加载,从而可以在浏览清单里看到所有的打印机,默认是 
 yes 
 。 
 
 printable  
 指定用户能不能打印,默认是 
 no 
 ,要让一个打印共享可以让用户使用,必须设为 
 yes 
 。 
 print name  
 打印机名。  
 
 printer driver
 
 打印机的驱动类型,这个参数可以让 
 WINDOWS 
 知道远程打印机上的类型,具体的值可以参考在 
 WINDOWS 
 里安装打印机出现选择打印机类型时的打印机类型。比如 
 Espon LQ1600K 
 打印机:  
 
 printer driver = Espon LQ-1600K
 
 以上就是 
 samba 
 的一些常用的配置,通过这些配置参数,我们已经可以建立起一个一般应用的文件服务器。虽然还有很多参数没有提到,但 
 samba 
 本身可以 
 
 
 用缺省值。  
 启动 
 samba 
 ,可以用 
 /usr/sbin/samba start 
 来启动 
 samba 
 ,也可以用 
 ntsysv 
 来启动 
 。  
 
 
 三、samba 进阶  
 
 
 下列所介绍的是一些高级参数的配置,这些参数如果应用得当,可以更加灵活地在网络上应用 
 samba
1. 
 宏  
 
 
 在基本配置里有提到一些参数的可以尾随 
 %u 
 、 
 %m 
 ,这是 
 samba 
 里定义的宏,宏用百分号后面跟一字符表示,在具体运作的时候就用实际的参数来代替。常用的宏有:  
 
 %S =  
 当前服务名;  
 
 %P =  
 当前服务的根路径;  
 
 %u =  
 当前服务的用户名;  
 
 %g =  
 给定 
 %u 
 的所在的主工作组名;  
 
 %H =  
 给定的 
 %u 
 的宿主目录;  
 
 %v = Samba  
 版本号;  
 
 %h =  
 运行 
 Samba 
 的机器的主机名;  
 
 %m =  
 客户机的 
 NETBIOS 
 名;  
 
 %L =  
 服务器的  
 NetBIOS  
 名;  
 
 %T =  
 当前的日期和时间;  
 
 
 灵活地应用宏可以很方便地管理比较复杂的网络。 
 
2. 
 一些常用高级配置参数  
 
2.1  
 全局参数  
 
config file
 
 说明:这个参数是全局参数,可以让你用另一个配置文件覆盖缺省的配置文件,如果文件不存在,该项无效。这个参数非常有用,也使得 
 samba 
 的配置更灵活,让一台 
 Linux 
 服务器模拟多台不同配置的 
 NT  
 服务器,满足不同的需求。  
 
 
 比如,您想让网络上的某台名字是 
 host1 
 的机器用它自己的配置文件,先在 
 /etc/ 
 下为 
 host1 
 配置一个名为 
 smb.conf.host1 
 的文件,在缺省的 
 smb.conf 
 里加这行:  
 
 config file = /etc/smb.conf.%m  
 
 
 这样,当 
 host1 
 请求连接的时候, 
 smb.conf.%m 
 被替换成 
 smb.conf.host1 
 ,对 
 host1 
 来说,它所看到的 
 samba 
 就是由 
 smb.conf.host1 
 定义的。而其它机器还是用 
 smb.conf 
 。  
 
 deadtime
 
 说明:这个参数值是个整数,单位是分钟,用于切断一个不活动的连接。当一个没有打开任何文件的连接的不活动的时间超过 
 datetime 
 指定的的时间 
 
 
 后, 
 samba 
 就自动切断这个连接。这个参数可以节省服务器的资源消耗,尤其是在有大量连接的情况下。默认的值是零,零代表 
 samba 
 不自动切断任何连 
 
 
 接。  
 
 time server
 
 说明:这个参数让 
 nmbd 
 成为 
 WINDOS 
 客户的时间服务器。默认是 
 no 
 。  
 
2.2  
 共享资源参数  
 
 dmin users
 
 这个参数用来赋予用户对共享资源的管理员权限,意味着这些用户可以 
 root 
 一样进行所有的文件操作,当然只局限在这个共享资源上 
 。这个选项要慎用,因为任何这样的用户可以对该共享上的文件随意进行操作。缺省是 
 admin users = no 
 。  
 
 
 例如:  
 
 admin users = Su_27  
 那么 
 Su_27 
 这个用户就是这个共享资源的管理员。  
 
 valid users
 
 说明:指定共享资源的有效用户,即允许访问该资源的用户。例如: 
 valid users = user1, user2 
 那么 
 user1 
 和 
 user2 
 是有效用户。  
 
 invalid users
 
 说明:和 
 valid users  
 相反,指定那些用户不可访问这共享资源。  
 
 max connections (S)
 
 说明:指定一个服务的最大连接数目,用户连接到该服务时如这个服务的连接数目已经达到指定值,这个新的连接请求把被拒绝。  
 例如:  
 max
 connections = 100
 
 最大连接数为 
 100 
 以上是一些 
 samba 
 的高级配置参数,但 
 samba 
 的参数还有很多,本章不能一一详述,如文件创建权限设定,代码页,文件名大小写是否 
 
 
 敏感等,可以参考 
 samba 
 的文档。  
 
 
 四、什么是NFS  
 
NFS  
 是网络文件系统( 
 Network File
 System 
 )的简称,是分布式计算系统的一个组成部分,实现在异种网络上共享和装配远程文件系统,从用户角度看来,在这些远程的文件系统操作和本地的文 
 
 
 件系统上操作并没有什么不同 
 。 
 NFS 
 由 
 Sun  
 微系统公司( 
 Sun Microsystem, Inc) 
 开发,制订了 
 NFS
 
 标准,并被 
 IETF 
 接受,纳入 
 RFC 
 ,作为文件服务的一种标准( 
 RFC1Array04 
 , 
 RFC1813 
 )。 
 NFS 
 基于客户 
 / 
 服务器结构,通过 
 RPC 
 (远过程调 
 
 
 用)实现,所有的 
 NFS 
 操作都由 
 RPC 
 过程来进行。 
 NFS
 
 服务器导出本地的目录给远程的 
 NFS 
 客户, 
 NFS 
 客户把对文件操作系统调用重定向到远程的系统。在 
 Linux 
 里,通常用 
 knfsd 
 来实现 
 NFS 
 服务,这是 
 
 
 个运行在核心空间的后台守护程序,相对与用户空间的 
 NFS 
 程序,有较高的响应性能。 
 
 
 五、配置NFS  
 
1. 
 创建或修改/etc/exports  
 
 exports 
 【输出】  
 的每一行由导出路径 
 ,  
 客户名列表以及每个客户名后尾随的访问选项构成 
 ,  
 访问选项是可选的。  
 
 directory hostname(options) ...
 options 
 是可选的,如果不指定 
 options 
 , 
 nfs 
 把采用默认的选项。 
 hostname 
 也可以为空,代表给任意外来主机提供服务。  
 
 
 例如:  
 /usr ws1.mydomain.com  
 导出路径 
 /usr  
 提供给  
 ws1.mydomain.com  
 访问。  
 
 /usr ws1.mydomain.com(rw)  
 同样是给 
 ws1.mydomain.com 
 访问,但具有写入权限。  
 
 /pub (ro,insecure,all_squash) 
 导出 
 /pub,  
 任何机器都可以访问 
 ,  
 允许用大于 
 1024 
 的端口进行连接 
 ,  
 并把所有的连接 
 id 
 映射到 
 nobody 
 .
 
 主机名里可以包含通配符 
 * 
 和?,例如 
 
 *.mydomain.com 
 ,代表 
 mydomain.com 
 里的所有机器,但注意通配符不能匹配主机名里的点,所以上面的 
 *.domain.com 
 不包 
 
 
 括 
 ws1.subdomain.mydomain.com 
 这样的机器。也可以用 
 IP 
 网络 
 / 
 子网掩码的形式来指定网络上的可以访问的机器。例如: 
 
 1Array2.168.1.0/255.255.255.0 
 修改过 
 /etc/exports 
 后,需要告诉 
 nfs 
 进程重新检查配置信息,可以用命令: 
 
exportfs 
 或重新启动 
 nfs 
 。  
 
 
 一些常用选项:  
 
 insecure  
 允许用户可以从大于 
 1024 
 的端口进行连接。  
 
 secure  
 限制用户只能从小于 
 1024 
 的端口号进行连接。  
 
ro  
 只读,注意在没指定 
 ro 
 的情况是可写的 
 。  
 
 noaccess  
 让导出路径的所有子目录对客户不可见 
 。用户连接到这样的路径后看到的是个空目录。  
 
 root_squash  
 这个选项可以把从客户机的 
 uid 
 为 
 0 
 的请求映射成 
 nobody 
 。  
 
 no_root_squash  
 这个选项和上面的相反,不映射 
 uid  
 为 
 0 
 的请求,这是缺省的。  
 
 rw  
 可写,这是缺省的。  
 
2. 
 一个exports的例子  
 
 /home ws1(rw) ws2(rw) ws3(rw)
 
    
 /usr/X11R6 ws1(rw) ws2(rw) ws3(rw)
 
    
 /usr/share ws1(rw) ws2(rw) ws3(rw)
 
    
 / ws1(rw,no_root_squash)
 
    
 /home/ftp (ro)
 
    
 /pub (ro)
 
    
 /pub/private (ro,noaccess)
3. 
 启动NFS服务  
 
 
 启动 
 NFS 
 服务可以用如下命令:  
 
/etc/rc.d/init.d/nfs start
 
 在修改 
 exports 
 文件后要告诉 
 nfs 
 配置信息变化,可以:  
 
/etc/rc.d/init.d/nfs stop
 
    
 /etc/rc.d/init.d/nfs start 
 
4. 
 怎么样装配远程NFS文件系统  
 
 
 如上例,装配上述的 
 /pub 
 可以简单用如下命令:  
 
 mount hostname:/pub /mnt
 
 其中 
 hostname 
 是远程主机的主机名。  
 
 
 查询远程机器上有导出文件系统的情况,可以用 
 showmount -e hostname 
 。