smb.conf中的变量替换
配置文件中可设置的许多字符串都可以进行替换。例如,选项path = /tmp/%u
被解释为path = /tmp/john
,如果用户以用户名john
连接。
这些替换大多在下面的说明中指出,但也有一些通用的替换,只要可能与之相关就适用。 它们是:
宏名称 | 描述 |
---|---|
%U | 会话用户名(客户端想要的用户名,不一定与他们得到的相同)。 |
%G | %U 的主要组名称。 |
%h | 运行 Samba 的互联网主机名。 |
%m | 客户端机器的NetBIOS 名称(非常有用)。当 Samba 监听端口 445 时,此参数不可用,因为客户端不再发送此信息。如果在有 Samba 域控制器的域上的 include 语句中使用此宏,请务必在 [global] 部分设置 smb ports = 139 。这将导致 Samba 不再侦听端口 445,并允许 include 功能像 Samba 2.x 时那样运行。 |
%L | 服务器的 NetBIOS 名称。 这样,就可以根据客户端对您的调用来更改配置。 服务器可以有 “双重人格”。 |
%M | 客户端机器的Internet名称。 |
%R | 协议协商后选择的协议级别。取值为CORE、COREPLUS、LANMAN1、LANMAN2、NT1、SMB2_02、SMB2_10、SMB2_22、SMB2_24、SMB3_00、SMB3_02、SMB3_10、SMB3_11 和SMB2_FF 。 |
%d | 当前服务器进程的进程号。 |
%a | 远程机器的体系结构。它目前可以识别Samba (Samba )、Linux CIFS 文件系统(CIFSFS )、OS/2 (OS2 )、Mac OSX (OSX )、Windows for Workgroups (WfWg )、Windows 9x/ME (Win95 )、Windows NT (WinNT )、Windows 2000 (Win2K )、Windows XP (WinXP )、Windows XP6 4位(WinXP64 )、Windows 2003(包括2003R2 (Win2K3 )和Windows Vista (Vista)。其他任何东西都将被称为UNKNOWN。 |
%I | 客户端的IP 地址。在4.0.0之前,它可以包含 IPv4 映射的IPv6 地址,现在它只包含IPv4 或IPv6 地址。 |
%J | 客户端机器的IP 地址,冒号/点被下划线代替。 |
%i | 客户端所连接的本地IP 地址。在4.0.0之前,它可以包含 IPv4 映射的IPv6 地址,现在它只包含IPv4 或IPv6 地址。 |
%j | 客户端连接的本地IP 地址,用下划线代替冒号/点。 |
%T | 当前日期和时间。 |
%t | 当前日期和时间的最小格式,不带冒号(YYYYYmmdd_HHMMSS )。 |
%D | 当前用户的域或工作组的名称。 |
%w | winbind 分隔符。 |
%$(envvar) | 环境变量envar 的值。 |
以下替代选项仅适用于某些配置选项(仅适用于已建立连接时使用的选项):
宏名称 | 描述 |
---|---|
%S | 当前服务的名称(如果有)。 |
%P | 当前服务的根目录(如果有)。 |
%u | 当前服务的用户名(如果有)。 |
%g | %u 的主要组名称。 |
%H | 由%u 指定的用户的home 目录。 |
%N | NIS home 目录服务器的名称。该名称可从 NIS auto.map 条目中获取。如果未使用 --with-automount 选项编译 Samba,该值将与 %L 相同。 |
%p | 服务home 目录的路径,从 NIS auto.map 条目中获取。NIS auto.map 条目被分割为 %N:%p 。 |
使用这些替换和其他smb.conf
选项可以做一些非常有创意的事情。