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 。
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 。