(120) 认证张口
smbd的任务就是给来到小卖部的客户提供他们想要的东西,但可不是谁来都给的,当然,也不是说要给钱,而是需要进行认证。要看看来的人有没有权利获取某一个文件。这个权限,包括两部分,一部分是smbd管理的Samba权限,一部分是由我管理的系统的权限。权限认证的过程就像这样:一个网络用户来到我们的懒蜗牛小卖部,对接待他的smbd说:给我来二斤照片,就那边那个。这时候smbd会很有礼貌的说:您好,请您出示用户名和密码。然后那个人自报家门:我叫张二嘎,密码是46243712,smbd拿出自己存在硬盘里的用户密码对照表,仔细检查一遍,确认这人确实是张二嘎,然后再找到他要的那二斤照片,叫什么瘦瘦的,可能是根瘦身有关。然后再看看自己的共享记录,就是/etc/smb.conf,看张二嘎能不能访问瘦瘦,这里检查的共享权限是看他能不能访问这个共享。一看,瘦瘦有档期可以访问,然后就把瘦瘦交给张二嘎?不能!手续还没完呢,想看瘦瘦没这么容易。之后smbd还要向我报告,说头儿阿,有个张二嘎要访问瘦瘦文件,你看看他有权限不?然后再由我检查权限,这会检查的是文件权限,也就是ls -l的时候可以看到的那种rwx的权限。如果共享权限过不了,只是说明张儿嘎不能通过网络访问瘦瘦这个共享(但是可能人家可以本地访问这个文件),如果我这里的文件权限过不了,说明张二嘎压根就不能访问瘦瘦文件,这两个权限是有区别的。所有权限都通过了之后,smbd才把瘦瘦文件真的读取出来,然后按照cifs协议打好包,递给张二嘎,完成一次文件的分享。
以上说的只是常见的,也是默认的权限管理状况。其实smbd有4种安全级别,刚才说的user级别,这种级别下,smbd根据本机上存的smbpasswd文件来判断来访问的人是不是张二嘎。另外三种级别分别是share,server,domain。在server级别,你可以给smbd指定一个认证服务器,比如另外一个小卖部,也就是另外一个装了samba的机器,去那台机器上认证。这种情况下,用户来了,说我叫张二嘎,smbd不用去找什么smbpasswd文件,直接扭头问隔壁的一片云小卖部:哎,你看丫是张二嘎么?一片云小卖部的人点点头:恩,就是他。这就算认证通过了。那么在domain级别呢?其实跟server差不多,smbd也不用自己做认证,但是这回不是链接其他的samba服务器了,而是链接倒windows的domain服务器上做验证。就像是用户来了,说叫张二嘎,smbd不查文件,也不问隔壁的一片云,直接拿起电话打110:你好,我们这有个人说是你们通缉的张二嘎,你们过来看看是不是。最后这个share级别呢?这个级别就是根本不管你是谁,一视同仁。人家来了说:我是张…… smbd直接拦住:行了,甭跟我说你是谁,不就要瘦瘦么,拿走拿走。