下面部分是一些在/etc/samba/smb.conf中使用的参数设置的示例,来实现创建(列出)你的samba服务器上的域用户和组信息。

      这里假设samba服务器已经正常的加入到域中,而且samba服务已经设置为自动启动,在本例我们将使用MYDOMAIN这个域。

      在[global]部分使用以下所示配置可以使得winbind服务列出damba服务器加入的DC(域控制器)中的所有用户和组信息。保证windbind服务运行时,你就可以使用在DC中的用户和组来进行类似文件/目录权限设置,以及samba共享定 义等。

#  WINBIND STUFF   
  idmap uid = 15000-20000   
  idmap gid = 15000-20000   
  winbind enum groups = yes   
  winbind enum users = yes   
  winbind separator = +   
  winbind use default domain = no   
  template homedir = /homes/%D/%U   
  template shell = /bin/bash

这些设置的一个简单的说明如下:

   - idmap uid - 指定一个uid范围,该范围内的uid被用来映射UNIX用户到windows用户SID,而且要确保这个id范围内没有被本地或者NIS用户占用,winbind启动以后,也不能在该ID范围内添加用户。

  - idmap gid - 指定一个gid范围,该范围内的gid被用来映射UNIX用户到windows的组SID,而且要确保这个id范围内没有被本地或者NIS组占用,winbind启动以后,也不能在该ID范围内添加新组。

  - winbind separator - 指定一个字符作为分隔符,winbind将使用该分隔符来用户或组名。使用该配置将使得域用户表示为 "MYDOMAINusername",域组被表示为"MYDOMAINDomain Users"

  - winbind enum groups和winbind enum users - 指定winbind是否在系统上创建域的组/用户,一般情况下都要设置为yes,除非你处于某种原因希望关闭该功能。

   - template homedir - 用来指定为域用户产生主目录。上面的示例中使用了变量替换,将使得winbind把用户主目录设置为/homes/MYDOMAIN/username。

    需要注意的是如果希望特定域或者所有域用户在samba目录有主目录,那么管理员必须手工创建,虽然template homedir控制samba在哪里寻找域用户的主目录,但是不会自动创建。

然后,管理员需要手工编辑/etc/nsswitch.conf文件,这样winbind能实现使用域上的用户。在红帽知识库中有其他文章讨论该问题。

最后管理员需要重新起动samba服务,配置winbind自动启动,然后手工启动winbind。

# chkconfig --level 345 winbind on
# service winbind start

Starting Winbind services:                                 [  OK  ]

管理员可以使用wbinfo和getent测试基本的域用户和组的列出功能如下:

# wbinfo -u
   MYDOMAIN+vince
  MYDOMAIN+Administrator
  MYDOMAIN+Guest

# wbinfo -g
   MYDOMAIN+Domain
   AdminsMYDOMAIN+Domain
    UsersMYDOMAIN+Domain Guests

# getent group
     quaggavty:x:102:
      quagga:x:92:radvd:x:75:
      radiusd:x:95:
     MYDOMAIN+Domain Admins:x:15008:MYDOMAIN+Administrator
     MYDOMAIN+Domain Users:x:15009:
     MYDOMAIN+Domain Guests:x:15010:MYDOMAIN+Guest

# getent passwd
     radvd:x:75:75:radvd user:/:/sbin/nologin
     radiusd:x:95:95:radiusd user:/:/bin/false
      MYDOMAIN+vince:x:15001:15009:Vince:/homes/MYDOMAIN/vince:/bin/bash
  MYDOMAIN+administrator:x:15009:15009:Administrator:/homes/MYDOMAIN/   administrator:/bin/bash
MYDOMAIN+guest:x:15010:15009:Guest:/homes/MYDOMAIN/guest:/bin/bash

需要注意的是:上面的wbinfo和getent命令的输出是经过裁剪的,以节省篇幅。

你可以看到,winbind将系统真实用户和域用户和组列在一起输出显示。

谨慎使用winbind的列组功能

很多域组包括空格,这时要确保在chown命令或smb.conf中使用域用户时要包包含空格的组名用引号括起来。

# chown :"MYDOMAIN+Domain Users" thisfile

包含空格的组名是一个麻烦,很多软件在处理包含空格组名时会出现只读空格前的情况。更多信息请参考

    * /usr/share/doc/samba-version/docs   
    * man wbinfo.   
    * man smb.conf.