samba文件共享

samba的作用

samba是一款软件,主要功能时提供cifs协议,Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源

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

samba的基本信息

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              

samba的多用户挂载

虚拟机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

标签:Samba 发布于:2019-10-27 09:13:39