最近新学Linux,本来想用RedHat Linux来做学习平台,但是发现RedHat Linux ISO文件实在是太难下载了。因为CentOS和RedHat Linux极其相似,所以选择下载CentOS Linux 7 DVD ISO. 这个镜像4个多GB,但是下载只用了30多分钟。

网络上大量配置samba的文章,但是发现没有一篇照着做是可以实现的。所以我决定写一篇完整的配置。虽然安全性不能保证,但是功能可以实现,安全性以后再研究了。

  1. 安装

安装的过程我不再具体写,百度一下有大把文档,稍微有点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",确保都安装成功了。

centos samba怎么配置 centos samba安装_centos 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

最后这条命令是检查状态的。

centos samba怎么配置 centos samba安装_centos samba怎么配置_02

 

5. 防火墙和SELinux

网上基本上没有文章提到这一点,所以我一直测试不成功,最后发现关闭SELinux和防火墙后就可以访问了。

关闭防火墙

centos samba怎么配置 centos samba安装_centos samba怎么配置_03

关闭SELinux

centos samba怎么配置 centos samba安装_centos samba怎么配置_04

 

7. 客户端所属组

我成功测试的机器是一台在WORKGROUP工作组里面的windows 7,加入域的机器是访问不了的。这个可能和之前我们Samba里面设置的是workgroup有关系吧。

 

 


转载于:https://blog.51cto.com/jeromexiong/1559129