测试要求:
一、共享名为shared,工做组为magedu;
二、添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
三、添加samba用户gentoo,centos和ubuntu,密码均为“magedu”;
四、此samba共享shared仅容许develop组具备写权限,其余用户只能以只读方式询问;
五、此samba共享服务仅容许来自172.16.0.0/16网络的主机访问;html
配置
samba服务器:172.16.20.241
一、首先安装samba程序[root@localhost ~]# yum -y install samba
二、修改配置文件linux
[root@localhost ~]# vim /etc/samba/smb.conf 修改--Network Related Options--区域的配置 workgroup = magedu //配置工做组名 hosts allow = 172.16.0.0/16 //设置仅容许部分主机访问samba服务 在配置文件底部添加以下配置信息 [shared] //共享名 path = /shared/ //共享路径 comment = share for test // 共享信息 guest ok = no // 禁止来宾帐户访问 browseable = yes // 容许浏览共享资源 read only = yes // 访问只读 valid users = @develop,ubuntu // 仅容许develop组内用户和ubuntu用户访问此共享资源,设置组时须要在组名前加上"@"符号 write list = @develop // 仅develop组内用户在此共享目录有写权限,这里须要注意的是,若是同时配置了read only = yes和write list,那么生效的效果为:write list指定的用户可写,其余用户只读。
更详细的行为控制和参数设定,推荐一位大神的文章http://blog.sina.com.cn/s/blog_63c8c46401014uhx.html
此处也是参照了这篇文章里的内容。
三、添加用户ubuntu
[root@localhost ~]# group add develop [root@localhost ~]# useradd -G develop gentoo [root@localhost ~]# useradd -G develop centos [root@localhost ~]# useradd ubuntu // 添加系统用户gentoo和centos并将这两个用户的附加组设置为develop // 添加系统用户ubuntu [root@localhost ~]# smbpasswd -a gentoo New SMB password: Retype new SMB password: Added user gentoo. [root@localhost ~]# smbpasswd -a centos New SMB password: Retype new SMB password: Added user centos. [root@localhost ~]# smbpasswd -a ubuntu New SMB password: Retype new SMB password: Added user ubuntu. [root@localhost ~]# // 将系统用户gentoo,centos,ubuntu分别添加到samba的密码文件中,成功samba服务的用户
四、建立共享目录并设置文件系统权限vim
[root@localhost ~]# mkdir /shared/ [root@localhost ~]# chmod -R o= /shared [root@localhost ~]# setfacl -m g:develop:rwx /shared [root@localhost ~]# setfacl -m u:ubuntu:rx /shared // 将其余用户的权限所有清空,提升安全性 // 因为测试要求gentoo和centos可以在共享目录中有写权限,因此使用facl设置属组develop对shared目录具备读写执行权限,若是直接修改组权限,不灵活,且下降了安全性;对于目录的执行权限,即cd进目录,且能够对此目录使用ls -l命令 // 使用facl设置用户ubuntu对shared目录具备读和执行权限,无写权限
五、效果测试
在另外一台linux主机上访问此samba服务器:
测试centos用户centos
[root@localhost ~]# smbclient \\172.16.20.241\shared -U centos Enter centos's password: Domain=[MAGEDU] OS=[Unix] Server=[Samba 3.6.23-45.el6_9] smb: \> smb: \> ls . D 0 Thu Aug 24 14:04:35 2017 .. DR 0 Thu Aug 24 13:55:01 2017 35727 blocks of size 524288. 29964 blocks available smb: \> // 成功访问shared目录,使用ls命令查看共享目录中的内容 smb: \> lcd /etc smb: \> put passwd putting file passwd as \passwd (1348.5 kb/s) (average 1348.6 kb/s) smb: \> ls . D 0 Thu Aug 24 14:05:27 2017 .. DR 0 Thu Aug 24 13:55:01 2017 passwd A 1381 Thu Aug 24 14:05:27 2017 35727 blocks of size 524288. 29964 blocks available smb: \> smb: \> rm passwd smb: \> ls . D 0 Thu Aug 24 14:05:35 2017 .. DR 0 Thu Aug 24 13:55:01 2017 35727 blocks of size 524288. 29964 blocks available smb: \> // 上传和删除passwd文件成功,说明具备写权限
gentoo用户已经测试,效果与centos用户一致,不在此赘述。安全
测试ubuntu用户服务器
[root@localhost ~]# smbclient //172.16.20.241/shared -U ubuntu Enter ubuntu's password: Domain=[MAGEDU] OS=[Unix] Server=[Samba 3.6.23-45.el6_9] smb: \> ls . D 0 Thu Aug 24 14:10:36 2017 .. DR 0 Thu Aug 24 13:55:01 2017 passwd A 1381 Thu Aug 24 14:10:31 2017 issue A 47 Thu Aug 24 14:10:36 2017 35727 blocks of size 524288. 29964 blocks available smb: \> get passwd getting file \passwd of size 1381 as passwd (84.3 KiloBytes/sec) (average 84.3 KiloBytes/sec) smb: \> rm passwd NT_STATUS_MEDIA_WRITE_PROTECTED deleting remote file \passwd NT_STATUS_MEDIA_WRITE_PROTECTED listing \passwd smb: \> put shadow NT_STATUS_ACCESS_DENIED opening remote file \shadow smb: \> // 能够下载文件,没法删除和上传文件,说明具备读权限,没有写权限
总结:
以上设置完成了测试要求,不过第4题的要求:其余用户只读,我这里理解的是 centos和gentoo可写,ubuntu只读,其余用户和匿名用户只读,因此设置:
guest ok = no
valid users = @develop,ubuntu
若是理解为centos和gentoo可写,ubuntu和其余用户及匿名用户为只读,那么要设置为:
guest ok = yes
删除valid users 一列网络
写的比较潦草,若有遗漏错误和争议之处,欢迎你们的批评指正和讨论,谢谢。
还有些许地方不够完整,继续学习之后回来填坑。ide