最近新学Linux,本来想用RedHat Linux来做学习平台,但是发现RedHat Linux ISO文件实在是太难下载了。因为CentOS和RedHat Linux极其相似,所以选择下载CentOS Linux 7 DVD ISO. 这个镜像4个多GB,但是下载只用了30多分钟。
网络上大量配置samba的文章,但是发现没有一篇照着做是可以实现的。所以我决定写一篇完整的配置。虽然安全性不能保证,但是功能可以实现,安全性以后再研究了。
- 安装
安装的过程我不再具体写,百度一下有大把文档,稍微有点Linux基础的人我相信都能安装的了。我装了两次,第一次用的的min install, 装完以后发现ifconfig命令运行不了。
运行which ifconfig或者是find / -name "ifconfig*.*"都没有找到文件文件。
网上找了很多,有的说是环境变量没有,文件在bin 或者sbin下面。
正解是运行下面命令:
# yum install net-tools
原因是ifconfig已经过时了,可以用ip addr或者ip link查询。
因为我是新学,所以为了排除干扰,我重新选择了file and printer server模式安装。这个模式下安装ifconfig命令是可以运行的。
2.安装samba
运行下面命令:
# yum -y install samba samba-client samba-common
安装完成后运行 rpm -qa | grep "samba",确保都安装成功了。
3. 配置samba
假设我们有这样一个场景
共享名 | 路径 | 权限 |
SHAREDOC | /smb/docs | 所有人员包括来宾均可以访问 |
RDDOCS | /smb/tech | 仅允许特定组的用户进行读写访问 |
准备工作:
创建共享目录(假设共享
/smb
目录下的文件)
# mkdir -p /smb/docs
# mkdir -p /smb/tech
//
创建操作系统用户
# useraddalice
# useraddjack
# useradd tom
# useradd RD
//
修改用户的组
# usermod -a-G RD alice
# usermod -a-G RD jack
# usermod -a-G RD tom
账号创建完以后检查用户所属组,确保每个用户所属组都有1003 RD
# id alice
uid=1000(alice) gid=1000(alice)
groups
=1000(alice),1003(RD)
# id jack
uid=1001(jack) gid=1001(jack)
groups
=1001(jack),1003(RD)
# id tom
uid=1002(tom) gid=1002(tom)
groups
=1002(tom),1003(RD)
# id RD
uid=1003(RD) gid=1000(RD)
groups
=1003(RD)
//
修改目录权限
# chgrp RD /smb/tech
# chgrp RD /smb/docs
# chown RD /smb/tech
# chown RD /smb/docs
# chmod 770 /smb/tech
# chmod 770 /smb/docs
修改完成后再检查一下文件夹权限
# ls /smb -l
//
备份原有的配置文件在原目录下
# cd /etc/samba
# cp smb.conf smb.conf.origin
# vi/etc/samba/smb.conf
删除原有所有内容,添加如下内容:
[global]
workgroup=BIGCLOUD
netbios name=ZZSRV2
server string=Samba Server
#security=share
security=user
map to guest = Bad User
[SHAREDOCS]
path=
/smb/docs
readonly
=
yes
browseable=
yes
guest ok=
yes
[RDDOCS]
path =
/smb/tech/
public = no
writable =
yes
write list = @RD
validusers = @RD
4. 重启服务
RedHat Liunx都是用service restart smb来重启的,在CentOS里面服务的操作都是用systemctl来完成了。
运行下面命令:
# systemctl restart smb
# systemctl reload smb
# systemctl status smb
最后这条命令是检查状态的。
5. 防火墙和SELinux
网上基本上没有文章提到这一点,所以我一直测试不成功,最后发现关闭SELinux和防火墙后就可以访问了。
关闭防火墙
关闭SELinux
7. 客户端所属组
我成功测试的机器是一台在WORKGROUP工作组里面的windows 7,加入域的机器是访问不了的。这个可能和之前我们Samba里面设置的是workgroup有关系吧。