文件共享:Samba
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件共享:Samba相关的知识,希望对你有一定的参考价值。
Samba共享服务
– 用途:为客户机提供共享使用的文件夹
– 协议:SMB(TCP 139)、CIFS(TCP 445)
客户端访问服务端资源会遇到的四个问题:
1,服务端,服务的访问控制
2,服务端,防火墙
3,服务端,SELinux策略
4,服务端,本地权限
SELinux策略,布尔值(开启或关闭)
? getsebool-a 查看所有 SELinux 开关
? setsebool 控制 SELinux 开关
需要加 -P 选项才能实现永久设置
配置SMB文件夹共享
? 所需软件包:samba
? 系统服务:smb
配置文件:/etc/samba/smb.conf
? Samba用户 —— 专用来访问共享文件夹的用户
--采用独立设置的密码
--但需要提前建立同名的系统用户(可以不设密码)
如果需要设置密码:
? 使用 pdbedit 管理工具
– 添加用户:pdbedit -a 用户名
– 查询用户:pdbedit -L [用户名]
– 删除用户:pdbedit -x 用户名
要求在虚拟机 server0 上发布两个共享文件夹,具体要求如下:
1,此服务器必须是 STAFF 工作组的一个成员
2,发布目录 /common,共享名为 common
3,发布目录 /devops,共享名为 devops
4,这两个共享必须是可浏览的,只有 example.com 域内的客户端可以访问
5,用户 harry 对共享 common 只读,密码是 migwhisk
6,用户 kenji 对共享 devops 只读,密码是 atenorth
7,用户 chihiro 对共享 devops 可读写,密码是atenorth
服务端:
1,安装软件包samba
[[email protected] ~]# yum -y install samba
2,创建共享账号
添加共享账号harry,密码为migwhisk:
[[email protected] ~]# useradd harry
[[email protected] ~]# pdbedit -a harry //根据提示设好密码migwhisk
添加共享账号kenji,密码为atenorth:
[[email protected] ~]# useradd kenji
[[email protected] ~]# pdbedit -a kenji //根据提示设好密码atenorth
添加共享账号chihiro,密码为atenorth:
[[email protected] ~]# useradd chihiro
[[email protected] ~]# pdbedit -a chihiro //根据提示设好密码atenorth
确认共享账号:
[[email protected] ~]# pdbedit -L
harry:1003:
chihiro:1005:
kenji:1004:
3,准备共享文件夹
[[email protected] ~]# mkdir /common
[[email protected] ~]# mkdir /devops
[[email protected] ~]# setfacl -m u:chihiro:rwx /devops //配置写入权限
4,调整SELinux开关策略,允许发布可写的Samba共享资源
[[email protected] ~]# getsebool -a | grep ^samba_exp //默认配置
[[email protected] ~]# setsebool -P samba_export_all_rw=on //永久打开设置
[[email protected] ~]# getsebool -a | grep ^samba_exp //查看结果
5,配置共享目录
[[email protected] ~]# vim /etc/samba/smb.conf
[global]
workgroup = STAFF
.. ..
[common]
path = /common
hosts allow = 172.25.0.0/24
[devops]
path = /devops
hosts allow = 172.25.0.0/24
write list = chihir
6,启动系统服务smb,并设置开机自启
[[email protected] ~]# systemctl restart smb
[[email protected] ~]# systemctl enable smb
[[email protected] ~]# netstat -antpu | grep smb
客户端:
1,安装软件包samba-client
[[email protected] ~]# yum -y install samba-client
2,浏览目标主机提供了哪些共享资源
[[email protected] ~]# smbclient -L server0.example.com
3,连接目标主机的共享目录
[[email protected] ~]# smbclient -U harry //server0.example.com/common
多用户Samba挂载
Samba客户端的multiuser挂载:支持切换访问Samba共享的用户身份,但不需要重新挂载共享资源。挂载参数需要添加“multiuser,sec=ntlmssp”,客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。
在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。
为访问网络资源配置开机挂载时,注意添加参数“_netdev”,表示等客户机网络配置可用以后才挂载对应资源。
1,创建挂载点
[[email protected] ~]# mkdir /mnt/dev
2,安装cifs-utils软件包
[[email protected] ~]# yum -y install cifs-util
3,配置开机挂载
[[email protected] ~]# vim /etc/fstab
//server0.example.com/devops /mnt/dev cifs username=kenji,password=atenorth,_netdev 0 0
4,测试挂载配置
[[email protected] ~]# mount -a
[[email protected] ~]# df -hT /mnt/dev
5,修改挂载配置,添加多用户支持
[[email protected] ~]# vim /etc/fstab
//server0.example.com/devops /mnt/dev cifs username=kenji,password=atenorth,multiuser,sec=ntlmssp,_netdev 0 0
[[email protected] ~]# umount /mnt/dev //卸载此共享
[[email protected] ~]# mount /mnt/dev //重新挂载此共享
6,验证多用户访问
切换到普通用户student验证,无权访问挂载点/mnt/dev:
[[email protected] ~]# su - student
[[email protected] ~]$ ls /mnt/dev
ls: cannot access /mnt/dev: Permission denied
以共享用户chihiro身份提交新的访问凭据,再次验证,对挂载点/mnt/dev可读写:
[[email protected] ~]$ cifscreds -u chihiro add server0.example.com
Password: //输入共享账号chihiro的密码
[[email protected] ~]$ touch /mnt/dev/a.txt
[[email protected] ~]$ ls /mnt/dev/a.txt
/mnt/dev/a.txt
以上是关于文件共享:Samba的主要内容,如果未能解决你的问题,请参考以下文章
如何配置samba 要求共享文件夹public、匿名访问 samba版本3.0