用户认证

作为一个功能强大的文件服务器软件,Samba提供了丰富的用户认证方式用于管理访问其共享资源的用户。

客户端在访问时,Samba服务器根据全局配置中的参数选择合适的认证方式以及认证用户来源进行认证。Samba服务器认证用户来源可以基于Samba服务器本身的用户信息,也可以基于Windows活动目录中的用户信息。

虽然Samba服务器运行在Linux平台,但Samba服务器认证用户来源并不能直接读取/etc/passwd中的用户及密码信息。如果希望Samba服务器认证用户信息来自其所在系统中的用户需要通过smbpasswd(具体见6.8)命令将系统用户添加到Samba服务中。图6-23所示内容中通过smbpasswd命令将系统中现有用户tonyzhang添加到Samba认证用户中,此处被添加的用户必须是在系统中存在,也就是在/etc/passwd中已有的用户,如果是一个系统中不存在的用户就会出现如图6-24所示的错误。在使用smbpasswd需要为用户设置一个密码,这个密码仅在客户端访问Samba服务器时有效,与用户登录系统密码无关。

Linux -- Samba用户认证_第1张图片

如果希望某人可以访问Samba服务器的共享资源时,必须让他知道访问Samba的用户及密码,从系统安全角度来说这样是存在一些安全隐患的,因为他至少已经知道了一个Linux系统中的用户名(访问Samba的密码是使用smbpasswd设置的,不是该用户登录系统的密码)。Samba服务器也考虑到了这一点,通过Samba服务器提供的用户映射功能可以很好地解决这个问题。

用户映射功能实际就是给系统用户在Samba服务器中起一个别名,当访问Samba服务器时用户输入的实际上一个别名,这样就无法得知Linux系统中的用户名。配置用户映射功能需要以下两个步骤。

(1)通过/etc/samba/smbusers文件设置用户映射关系。smbusers文件在安装Samba服务器端时已默认配置了root、nobody的用户映射关系,如图6-25所示。在该文件第一行的注释中已标明该文件的语法。假设已有两个系统用户tonyzhang及tomyang通过smbpasswd添加到Samba服务器,希望将tonyzhang映射为tony或zhangqin,将tomyang映射为tom,则在smbusers文件中加入以下两行。


tonytonyzhang = tony zhangqin  tomtomyang = tom


Linux -- Samba用户认证_第2张图片

Linux -- Samba用户认证_第3张图片

参考: http://book.51cto.com/art/201108/282441.htm