samba是一款软件,主要功能时提供cifs协议,Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源
虚拟机IP:172.25.254.125(服务端)
yum install samba samba-common samba-client -y
systemctl start smb
systemctl stop firewalld
虚拟机IP:172.25.254.225(客户端)
yum install samba-client -y
netstat -lntup|grep smb
端口: 139/tcp 139/udp 445/tcp 445/udp
主配置文件:/etc/samba/smb.conf
虚拟机IP:172.25.254.125(服务端)
vim /etc/samba/smb.conf
89 workgroup = dream ###工作组的设定
90 server string = hello world ###全局共享信息
hosts deny = 172.25.254.225 ###黑名单
hosts allow =172.25.254.225 172.25.254. 或 172.25.254.0/24 ###白名单
测试
虚拟机IP:172.25.254.225(客户端)
smbclient -L //172.25.254.125
黑名单打开:
白名单打开:
虚拟机IP:172.25.254.125(服务端)
useradd aa
useradd dream
smbpasswd -a aa
smbpasswd -a dream ###添加samba用户
[root@samba-server ~]# pdbedit -L ###列出samba用户
aa:1002:
dream:1001:
pdbedit -x aa ###删除samba用户
setsebool -P samba_enable_home_dirs on ###给家目录权限,/etc/samba/smb.conf的30行
测试
虚拟机IP:172.25.254.225(客户端)
smbclient //172.25.254.225/dream -U dream ###这样很多命令没法使用,所以我们挂载使用文件夹
mount //172.25.254.225/dream /mnt -o username=dream,password=1
vim /etc/fstab
###开机自动挂载
//172.25.254.225/dream /mnt cifs defaults,username=dream,password=1 0 0
如果未给家目录权限:
给了权限:
(1)用户创建的目录
虚拟机IP:172.25.254.125(服务端)
mkdir /dream
semanage fcontext -a -t samba_share_t '/dream(/.*)?' ###开放当前目录的selinux安全上下文
restorecon -FvvR /dream/
[root@samba-server /]# ls -dZ /dream ###查看selinux安全上下文
drwxr-xr-x. root root system_u:object_r:samba_share_t:s0 /dream
vim /etc/samba/smb.conf ```
###在文件最后面加入
321 [DREAM]
322 comment = dream_ya ###描述
323 path = /dream
touch /dream/aa ###我们在共享目录建文件来看下效果
测试
虚拟机IP:172.25.254.225(客户端)
smbclient -L //172.25.254.125 -U dream
smbclient //172.25.254.125/DREAM -U dream
(2)系统目录
虚拟机IP:172.25.254.125(服务端)
vim /etc/samba/smb.conf
326 [SYSTEM]
327 comment = file
328 path = /mnt
setsebool -P samba_export_all_ro on ###/etc/samba/smb.conf的49行
测试
虚拟机IP:172.25.254.225(客户端)
smbclient -L //172.25.254.125 -U dream
smbclient //172.25.254.125/SYSTEM -U dream
虚拟机IP:172.25.254.225(客户端)
vim /etc/samba/smb.conf
124 map to guest = bad user
321 [DREAM]
322 comment = dream_ya
323 path = /dream
324 guest ok = yes ###匿名用户可以登陆
systemctl restart smb
测试
虚拟机IP:172.25.254.225(客户端)
mount //172.25.254.125/DREAM/mnt/ -o username=guest
df
虚拟机IP:172.25.254.225(客户端)
chmod 777 /dream
setsebool -P samba_export_all_rw on
vim /etc/samba/smb.conf
writable = yes | no ###是否开启写权限(开启所有用户都可以写)
把上面的writable = yes | no注释掉,在测试下面的情况
write list = dream ###给dream写的权限
write list = +dream ###给dream组写的权限
admin users = dream ###设定当前共享的root为dream
valid users = @dream ###设定当前共享的有效用户组
browseable = yes | no ###当前共享是否隐藏
测试
虚拟机IP:172.25.254.225(客户端)
[root@samba-client /]# mount //172.25.254.125/DREAM /mnt -o username=dream,password=1
vim /etc/samba/smb.conf
327 [SYSTEM]
328 comment = file
329 path = /mnt
330 browseable = no
systemctl restart smb.service
测试
虚拟机IP:172.25.254.225(客户端)
smbclient -L //172.25.254.125 -U dream
虚拟机IP:172.25.254.225(客户端)
yum install cifs-utils.x86_64 -y
vim /root/sambapasswd
username=dream
password=1
chmod 600 /root/sambapasswd
mount -o credentials=/root/sambapasswd,sec=ntlmssp,multiuser //172.25.254.125/DREAM /mnt
credentials=/root/sambapasswd ###挂载时的用户认证目录
multiuser ###支持其他用户认证
sec=ntlmssp ###其他用户的认证方式
测试
虚拟机IP:172.25.254.125(服务端)
[root@samba-server /]# useradd redhat
[root@samba-server /]# smbpasswd -a redhat
New SMB password:
Retype new SMB password:
Added user redhat.
虚拟机IP:172.25.254.225(客户端)
[root@samba-client /]# useradd kk
[root@samba-client /]# su - kk
[root@samba-client /]# cifscreds add -u redhat 172.25.254.125
[root@samba-client /]# ls /mnt