SAMBA有五种工作模式(认证方式):share、user、server、domain、ads。其中share是不设防的,user可以通过samba所在的本机用户账户进行认证。server、domain、ads除了前两种方式,还可以通过局域网内的Windows域服务器进行认证。三种认证的方式有所区别,关于区别的详情请参考这里

这里,我们采用Server这种方式。这种方式的优点就是需要配置的地方少,对系统修改小。缺点就是需要手动添加每一个网络用户到本地用户的映射。详细配置过程如下:

  • 配置samba:重要的包括配置samba的工作模式为server、配置samba的密码认证服务器为域服务器、指定用户名映射文件的位置(默认是/etc/samba/smbusers)

  • 用户名映射:主要在前面配置的用户名映射文件中添加内容。每行一个,格式为【本地用户名=网络用户名列表】;网络用户名是用于局域网内其他客户访问本机共享时输入的用户名。可以是域用户名,也可以是别的什么名字。当用户登录时,samba会首先访问域控制器,进行该用户的认证,如果认证失败(比如密码错误、用户名不是域用户),就会退而求其次,到samba所在的本机进行普通的的认证,如果还是失败方才失败。

配置就这么两步,相对于domain模式和ads模式的配置而言,简直是简单极了。

只不过麻烦的是需要将域内所有的用户都添加到用户名映射文件中。看似麻烦,但这个文件的格式很简单,所以完全可以从别的地方将所有用户导出,然后添加进去即可,更新的时候也是这样。

domain模式的优势只不过是用程序自动完成同步而已。但缺点也是明显的,自动同步的话,就无法按照我们的需要自定义用户的映射关系,比如我要用户a、b、c对应本地用户X,使得他登录后拥有X的权限。

文末附上samba的范例配置

和用户名映射文件的范例配置: