SMB 文件共享
- 是windows和Unix系统之间共享文件的一种协议
- 主要用于Windows 和 Linux下的文件共享、打印共享
- 实现匿名与本地用户文件的共享
- 支持多节点挂载
Samba 服务的组成部分
软件包:
Samba的支持文件:Samba-common
客户端应用程序:Samba-client
服务器应用程序:Samba
服务名称:smb nmb
服务进程:
1、smbd进程:控制发布共享目录与权限、负责文件传输;TCP 139 445端口
2、nmbd进程:用于名称解析 UDP 137 138
主配置文件:/etc/samba/smb.conf
实验:
准备环境:
1、重置两台虚拟机,作为实验的两台主机
2、配置两台主机的 ip、yum源、主机名
服务端:
[root@server ~]# yum install samba samba-client samba-common #下载smb相关软件
[root@server ~]# systemctl start smb #开启samba服务
[root@server ~]# systemctl enable smb
[root@server ~]# systemctl stop firewalld #关闭防火墙
[root@server ~]# systemctl disable firewalld
查看smb的端口:
SMB 用户
smbpasswd
如果您没有Samba密码服务器,则必须在本地计算机上创建身份验证数据。使用smbpasswd创建Samba账户和密码
注意:smb用户必须是本地存在的用户
服务端:
[root@server ~]# useradd haha
[root@server ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@server ~]# id haha
uid=1001(haha) gid=1001(haha) groups=1001(haha)
[root@server ~]# smbpasswd -a student #添加用户student并设置密码,这里的用户必须是系统实际存在用户
New SMB password:
Retype new SMB password:
Added user student.
[root@server ~]# smbpasswd -a haha
New SMB password:
Retype new SMB password:
Added user haha.
[root@server ~]# pdbedit -L #查看smb用户
student:1000:Student User
haha:1001:
[root@server ~]# pdbedit -x student #删除smb用户student
[root@server ~]# pdbedit -L
haha:1001:
[root@server ~]# smbpasswd -a student
New SMB password:
Retype new SMB password:
Added user student.
客户端:
[root@client ~]# yum install samba-client -y
[root@client ~]# smbclient -L //172.25.254.196 #列出196主机的samba服务的文件系统,-L 列出
Enter root's password: #因为服务器没有添加smb用户,这里直接出车(匿名用户访问),显示的没有具体文件
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@client ~]# smbclient //172.25.254.196/student -U student #指定用户登录访问smb文件系统
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
smb: \> quit
[root@client ~]# smbclient //172.25.254.196/student -U student
Enter student's password:
session setup failed: NT_STATUS_LOGON_FAILURE
保护 smb
布尔值允许本地Linux主目录作为CIFS文件共享导出至其他系统:
samba_enable_home_dirs
布尔值允许挂载远程CIFS文件共享并将其用作本地Linux主目录:
use_samba_ home_dirs
smb共目录的selinux安全上下文: samba_share_t
共享系统目录时要打开:
samba_export_all _ro 和 samba_export_all_rw
服务端:
查看布尔值允许本地目录作为 cifs 文件共享的相关主目录
[root@server ~]# setsebool -P samba_enable_home_dirs on #打开访问samba的布尔值
客户端:
[root@client ~]# smbclient //172.25.254.196/student -U student #访问student的文件系统可以查看
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
. D 0 Thu Jul 10 19:06:52 2014
.. D 0 Tue Jun 5 07:51:50 2018
.bash_logout H 18 Wed Jan 29 07:45:18 2014
.bash_profile H 193 Wed Jan 29 07:45:18 2014
.bashrc H 231 Wed Jan 29 07:45:18 2014
.ssh DH 0 Thu Jul 10 18:19:10 2014
.config DH 0 Thu Jul 10 19:06:53 2014
40913 blocks of size 262144. 28554 blocks available
smb: \> quit