首先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
其他配置相同,即可实现针对单一用户的访问控制策略的实现。