一、samba简介
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
二、samba的基本信息
服务名称:smb.service
配置目录:/etc/samba
主配置文件:/etc/samba/smb.conf
端口号:139/445
安全上下文:samba_share_t
三、samba的安装与启用
dnf install samba samba-common samba-client -y
systemctl enable --now smb
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
测试:在客户端中用smbclient
命令来访问
smbclient -L //192.168.0.111
四、linux和windows文件的共享
在windows中文件共享的步骤如下:
可以看到共享文件
在linux中查看windows中共享的文件
windows中的共享文件可以挂载在linux中
五、samba用户的建立
samba用户必须是本地存在的用户
useradd wang
useradd dan
smbpasswd -a wang #创建samba用户
smbpasswd -a dan
pdbedit -L #列出samba用户
pdbedit -x dan #删除用户
六、samba用户家目录访问
在linux中访问
在windows中
输入用户名和密码
可以看到用户家目录文件
但是权限受限不能查看文件中的内容
在服务端更改selinux设定
getsebool -a | grep samba
setsebool -P samba_enable_home_dirs on
再次查看家目录内容
七、samba服务共享目录
建立共享目录
mkdir /wangdir
touch /wangdir/wangfile{1..5}
更改新建目录的安全上下文
semanage fcontext -a -t samba_share_t '/wangdir(/.*)?'
restorecon -RvvF /wangdir/
在主配置文件中加入新建立的共享目录
[wangdir] #共享目录名称
comment = wangdir #共享目录的说明
path = /wangdir #共享目录的绝对路径
测试共享目录是否共享成功
smbclient //192.168.0.111/wangdir -U wang
八、samba的访问控制
8.1 局部访问控制
在配置文件中更改内容如下:
[wangdir]
comment = wangdir
path = /wangdir
hosts allow = 192.168.0.11 #只允许192.168.0.11这台主机访问
11主机中访问
10主机中访问
8.2 全局访问控制
在主配置文件全局部分更改
则在10主机中不能列出共享内容
九、samba常用的配置参数
9.1 writable = yes|no
更改共享目录的所有人,所有组以及文件权限,排除本地文件对配置参数设置时的影响
chown wang.wang /wangdir/
chmod 777 /wangdir/
默认情况下在客户端测试共享访问时
在配置文件中更改
在客户端进行测试
mount //192.168.0.111/wangdir -o username=wang,password=wang /mnt
9.2 指定用户|用户组可写
指定用户wang在wangdir共享目录中可写
在服务端中有两个samba用户
用户dan删除文件失败
指定用户组wang在wangdir共享目录中可写
更改用户dan的所有组为wang
usermod -G wang dan
在配置文件中更改
再次删除文件成功
9.2 指定用户|用户组可访问
在主配置文件中设定只有用户dan可以访问共享
在主配置文件中设定只有用户组dan可以访问共享
9.3 是否隐藏共享
在主配置文件中设定
9.4 是否允许匿名用户访问
9.5 指定共享文件的超级用户身份
在服务端查看新建文件的属性
更改主配置文件
再次新建文件