Samba共享
一、什么是Samba?
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
二、配置。
配置环境:1、防火墙默认区域设置为Public;2、SELinux状态设置为0;3、本实验中服务端ip为172.25.0.11,客户端ip为172.25.0.10;4、yum源
服务端操作:
1、添加本地不可登录用户,并且加入到Samba共享账号,设置密码
[root@server0 ~]#useradd -s /sbin/nologin natasha
[root@server0 ~]#pdbedit -a natasah
password : taren
2、创建共享目录:
[root@server0 ~]# mkdir /develops
3、安装软件Samba
[root@server0 ~]#yum -y install samba
4、修改配置文件,配置文件路径为 /etc/samba/smb.conf
[root@server0 ~]#vim /etc/samba/smb.conf
.........................
[develops]
path = /develops
5、重启服务并设置为开机自启
[root@server0 ~]#systemctl restart smb
[root@server0 ~]#systemctl enable smb
6、设置布尔值,根据要求将读写或只读权限开关设置为 on 状态
[root@server0 ~]#setsebool samba_export_all_rw on
7、为共享账号设置ACL访问权限(setfacl命令)
[root@server0 ~]#setfacl -m u:natasha:rw /develops
客户端操作:
1、安装软件cifs-ntils
[root@server0 ~]#yum -y install cifs-utils
2、创建本地挂载目录
[root@server0 ~]#mkdir /smb
3、修改配置文件,配置文件路径为 /etc/fstab
[root@server0 ~]#echo "//172.25.0.11/develops /smb cifs defaults,user=natasha,pass=taren,_netdev 0 0" >> /etc/fstab
*****配置格式 : //服务器ip地址/共享名 本地挂载目录路径 文件类型(cifs) defaults,user=共享账号,pass=密码,_netdev 0 0 ***********************************************************
4、用mount -a 检查挂载是否成功,执行后无报错即可
[root@server0 ~]#mount -a
5、使用 df -h 命令查看挂载点
[root@server0 ~]#dh -h
扩展:配置多用户 Samba 挂载
在服务端:
[root@server0~]#mkdir /devops
[root@server0~]#useradd kenji
[root@server0~]#pdbedit -a kenji
[root@server0~]#setfacl -m u:chihiro:rwx /devops
[root@server0 ~]# vim /etc/samba/smb.conf
.. ..
[devops]
path = /devops
write list = chihiro
hosts allow = 172.25.0.0/24
[root@server0 ~]# systemctl restart smb ##只允许指定网域访问
在客户端上:
[root@desktop0 ~]# yum -y install samba-client cifs-utils
[root@desktopX ~]# mkdir /mnt/dev
[root@desktopX ~]# vim /etc/fstab
//serverX.example.com/devops /mnt/dev cifs
user=kenji,pass=atenorth,multiuser,sec=ntlmssp,_netdev 0 0
[root@desktop0 ~]# mount -a
验证多用户访问(在 desktop0 上):普通用户切换为 chihiro 身份即可读写
[root@desktop0 ~]# su - student ##切换到普通用户
[student@desktop0 ~]$ cifscreds add -u chihiro server0 ##向服务器提交用户认证凭据
Password: ##提供 Samba 用户 chihiro 的密码
[student@desktop0~]$ touch /mnt/dev/b.txt ##确认有写入权限(新建文件)