首先samba的配置文件为:/etc/samba/smb.conf

我们找到[global],并在其下加入


pam obey restrictions = yes


然后我们在/etc/pam.d/samba下加入:


account required pam_access.so accessfile=/etc/mysmblogin


在/etc下新建文件mysmblogin

然后向其中写入访问控制规则。

如:


+:user1:172.16.1
-:user2:172.16.1


以上控制规则即:允许user1从172.16.1.0网段访问服务器samba服务,拒绝user2从172.16.1.0网段访问服务器samba服务。

+为允许,-为拒绝

:中间是拒绝或允许的用户名:

这里拒绝的只能是网段,不能够具体到IP,这也是特别要注意的。

同时,这里的访问控制规则我们也可以用逗号来代替空格,效果是完全一样的。

下面顺便加上一些小芝士:

如果我们要为用户建立独立的配置文件:

那么我们首先要创建文件夹。

例如:


mkdir /smbdata


然后打开smb的服务器配置文件:


vim /etc/samba/smb.conf


然后剖找到global,添加工作空间。


workgroup =COMPANY
server string = Samba File Server
log file = /var/log/samba/%m.log
max log size = 1024
config file = /etc/samba/%U.smb.conf


然后在文件最下方添加如下:(注意我们之前创建的文件夹为/smbdata):


[sales]
comment=sales
path = /smbdata
valid users = @sales
write list = test2
read only =no
printable = yes
browsable = NO


然后复制samba配置文件:


cp /etc/samba/smb.conf /etc/samba/test2.smb.conf


这个时候我们这个test2用户的配置文件就变成了

/etc/samba/test2.smb.conf

这里我们删除browsable = NO

然后重启samba服务器即可。

这里我们如果要实现针对这个用户的访问控制,那么我们只要在新配置文件,即 /etc/samba/test2.smb.conf,加入obey pam restrictions = yes

其他配置相同,即可实现针对单一用户的访问控制策略的实现。