Samba
匿名访问
安装Samba服务
[root@node01 ~]# yum install samba samba-client -y #也可以单独地安装yum install samba
配置普通的Samba服务只需修改smb.conf配置文件即可
[root@node01 ~]# cd /etc/samba/
备份smb.conf
[root@node01 samba]# cp smb.conf smb.conf.bak
[root@node01 samba]# ls
lmhosts smb.conf smb.conf.bak smbusers
修改smb.conf
[root@node01 samba]# vi smb.conf
添加匿名访问map to guest = Bad Use
[global] //全局配置,影响所有范围
workgroup = SAMBA //工作组
security = user //安全验证方式为user,6.5系统的share已经不用了
map to guest = Bad User //允许匿名用户访问,默认没有这一条
passdb backend = tdbsam //定义用户后台类型为tdbsam
添加
[share] //共享目录显示的名字,随便起
path=/opt/abc //共享目录的路径
browseable=yes //允许访问
writable=yes //可写入
create mask=0644 //写入文件的权限为644
directory mask=0755 //创建目录的权限为755
guest ok = yes //允许匿名访问,public=yes也可以
创建共享目录 并添加权限
dkdir /opt/abc
chmod 777 /opt/abc
检查语法
testparm smb.conf //检查配置文件的语法
Load smb config files from smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions //这里可以ctrl+c跳过
关闭防火墙
setenforce 0 //设置selinux=Permissive
systemctl stop firewalld.service //关闭防火墙
systemctl disable firewalld.service //设置开机不启动防火墙
启动
service smb start //启动samba服务
测试
\\IP
基于身份
创建共享目录
dkdir /opt/test
加入test
注释掉map to guest = Bad User 取消匿名访问
#map to guest = Bad User //不允许匿名用户访问,默认没有这一条
[test]
path=/opt/test //共享目录是test
browseable=yes
create mask=0644
directory mask=0755
valid users=zhangsan, lisi //允许访问的账户张三和李四,中间用逗号和空格分隔
write list=zhangsan //可写的账户是张三
创建用户
useradd zhangsan
useradd lisi
[root@sheng samba]# smbpasswd -a zhangsan //建立samba用户并指定密码,用户必须是系统用户
Added user zhangsan.
[root@sheng samba]# smbpasswd -a lisi
Added user lisi.
[root@sheng samba]# pdbedit -L //列出Samba用户列表,读取passdb.tdb数据库文件
zhangsan:1000:
lisi:1001:
重启Samba
sevice smb restart
net use * /d //windows系统清除缓存
别名访问
[global]
workgroup = SAMBA
security = use
passdb backend = tdbsam
username map = /etc/samba/smbusers //全局配置下指定别名映射的配置文件,默认是没有的需要自己创建
修改 samba/smbusers文件
vi smbusers
zhangsan = t01 t02
重启Samba
sevice smb restart
测试
名称:t01
密码:zhangsan的密码
或者
名称:t02
密码:zhangsan的密码
访问控制(看注解)
[test]
path=/opt/test
browseable=yes //
create mask=0644
directory mask=0755
valid users=zhangsan, lisi
write list=zhangsan
hosts allow=192.168.245. //允许访问
hosts deny=192.168.245. //限制访问
重启Samba
sevice smb restart
客户机访问
yum -y install samba-client //需要安装samba客户端软件
[root@sheng samba]# smbclient -L 192.168.245.10 //查看客户端的共享文件
Enter SAMBA\root's password:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 远程管理
C$ Disk 默认共享
D$ Disk 默认共享
IPC$ IPC 远程 IPC
share Disk
特殊情况
启动前
//关闭setenforce 增强器
[root@ak ~]# setenforce 0 //设置selinux=Permissive
[root@ak ~]# service firewalld stop //关闭防火墙
[root@ak ~]# service iptables stop //关闭防火墙
或者
service iptables stop
setenforce 0
权限
chmod 777 创建的文件夹名称 //给与所有权限
chown 添加的用户名.(用户组)添加的用户名 创建的文件夹
- 755:所有者有读、写和执行权限,所属组和其他用户只有读和执行权限。
- 775:所有者和所属组有读、写和执行权限,其他用户只有读和执行权限。
- 700:仅所有者有读、写和执行权限,所属组和其他用户没有任何权限。
- 777:所有用户都有读、写和执行权限,包括其他用户。
smb.conf配置
[fm]
comment = FM Share # 定义共享目录的注释
path = /var/ftp/fm # 定义共享目录的路径
browseable = yes # 允许该目录被显示在系统资源中
valid users = @fmusers # 仅允许组@fmusers 中的用户访问
writeable = yes # 允许共享目录可写
guest ok = no # 不允许guest账户访问
create mask = 0644 # 设置上传文件的权限,为了安全性,不给予文件执行权限
directory mask = 0755 # 设置创建目录的权限
hosts allow=192.168.245. #用于指定哪些IP地址或IP地址范围可以访问Samba服务器共享的资源。
以下配置将允许192.168.1.0/24
网段下的所有主机访问Samba服务器:
hosts allow = 192.168.1.0/24
表示容许来自172.17.2.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
hosts allow=172.17.2.0/255.255.0.0