一、说明
前面文章《samba服务5—share权限的基本使用》演示了不需要用户名和密码就能访问Samba的共享资源,这种访问方式极其的不安全,一般只用于临时共享资源。如果要在企业中让Samba文件服务长期使用,我们就需要搭建user级别的访问。虽然Samba安全级别支持windows的AD域,但是由于samba服务主要用于企业内网,一般情况下,没有必要搭建那么复杂的安全验证方式,原因在于内网受攻击的程度对比公网要小很多,用一个基本的验证方式就足够了。
要修改为user级别也很简单,直接 vim 修改 /etc/samba/smb.conf 中的security = user 就可以了,然后重启smb.service和nmb.service
为了演示,我的配置文件参数以及值如下:
二、演示
注意!是否重启服务与你是否修改了配置文件有关。
①、testparm 测试配置文件是否通过
②、手动添加文件夹—“ mkdir /public ”
③、需要添加用户----“ useradd pubtest ”,
为什么要添加系统用户这一步呢?
原因在于,samba用的是系统用户,samba密码。 ” smbpasswd -a 系统用户名 “,要想给用户添加samba密码,该用户必须已经是系统用户。
vsftp安装完成后默认使用的是本地用户,即系统用户名,系统密码。截获后数据包后,不仅能登录ftp,还能登录Linux,这非常的不安全,所以我们推荐使用匿名用户访问。到了samba这边,默认是user级别,用的是系统用户名,单独的samba密码,带来的好处是安全性大幅增加,系统密码是系统密码,samba密码是samba密码。
如果给一个系统中不存在的用户test添加samba密码,结果是这样的:
④、启动smb.service和nmb.service,让客户端访问。输入用户名pubtest,对应的samba密码,成功登录。
不同的用户登录,那么这个家目录就位于对应“ /home/用户名 ”目录下,能新建文件,证明拥有w权限。
进入pub,不能新建文件,权限不够,为什么?
明明我开启了writeable和write list。
因为GNU/Linux的系统文件权限没有w权限,对这个目录而言,pubtest用户是其他人,没有w权限。服务权限和系统权限都开启,这个w权限才是生效的,少一个都不行。有两种方法让pubtest有w权限,第一种:更改所有者chown pubtest /public;第二种:将pubtest加入root组里,gpasswd -a pubtest root,然后更改权限chmod 775 /public。
重启服务后,pubtest用户对目录拥有了w权限,如下图:
换一个用户比如ut1访问10.1.2.69,家目录能正常的新建,但是pub共享因为配置文件有valid users=pubtest的存在,所以不能正常进入,如下图:
这个时候,你可以在配置文件中修改“valid users=pubtest,ut1”,重启服务,便能正常进入目录。如果还需要写权限,在配置文件中修改 “ write list = pubtets,ut1 ”," gpasswd -a ut1 root ",重启服务,即可拥有w权限。这里就不具体演示。