Linux安装:samba

1、需求

在局域网内开放局域网共享服务:
有一个匿名的访问目录,可以放一些公共的软件,所有人都可以访问。
为每个人开放一个私人目录,只限定某个人能访问,其他人不能访问。

 

2、环境

一台服务器,安装了centos7.1

3、关闭selinux

服务器一般不会有人登录,嫌麻烦,还是关闭selinux吧。

暂时性关闭selinux

setenforce 0

永久性关闭selinux

vi /etc/selinux/config

修改配置文件
SELINUX=disabled

查询selinux状态

getenforce

disabled #是指永久性关闭
Permissive #是指临时性关闭

4、开放防火墙

先查询下防火墙状态

firewall-cmd --list-all

public (default, active)
interfaces: eno1
sources:
services: dhcpv6-clien ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

表示,在eno1网口,public域上,开放了dhcpv6-clien、ssh两个服务。
我们这里再开放samba服务:

firewall-cmd --zone=public --permanent --add-service=samba

sucess

刷新生效

firewall-cmd --reload

5、安装samba

yum -y install samba samba-client
...

启动

systemctl start smb

设置开机启动

systemctl enable smb

6、创建相关用户和目录

假设 /smb 目录为samba服务的数据目录,再该目录下 /smb/public 为共享目录,/smb/zhangsan 为张三独有的目录

6.1、先创建用户

groupadd home
useradd -g home zhangsan

6.2、再创建目录

mkdir /smb
mkdir /smb/public
mkdir /smb/zhangsan

6.3、更改目录权限

授权 /smb/public 为所有人都可以访问和编辑

chmod 777 /smb/public

授权 /smb/zhangsan 为张三个人可以访问

chown zhangsan:home /smb/zhangsan
chmod 700 /smb/zhangsan

7、配置samba服务

7.1、老规矩,先备份配置文件

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

7.2、修改配置文件

echo xx > /etc/samba/smb.conf

vi /etc/samba/smb.conf

配置如下
[global] #全局变量
workgroup = WORKGROUP #工作组,可自行修改
netbios name = SambaServer #名字,可自行修改
security = user #安全方式为user验证级别
map to guest = bad user

[public] #匿名可访问的目录
path = /smb/public
public = yes
writeable = yes
printable = no
create mask = 0660
directory mask = 0774

[zhangsan] #张三个人访问的目录
path = /smb/zhangsan
public = yes
writeable = yes
printable = no
create mask = 0660
directory mask = 0774
valid users = zhagnsan

测试配置有没有错误

testparm

7.3、增加samba用户

注意:事先得有系统用户

smbpasswd -a zhangsan

7.4、重启服务

systemctl restart smb

8、测试

可以再其他电脑上测试