SMB 文件共享:
服务端口 : 通常使用 TCP/445 进行所有连接。还使用UDP137,UDP138和TCP/139进行向后兼容。
主配置文件 :/etc/samba/smb.conf
配置环境:
准备两台虚拟机,进行配置IP,yum源,更改主机名字方便辨识开始实验:
在客户端安装samba服务(ip:172.25.254.121)
[root@client ~]# yum install samba-client -y 安装服务
[root@client ~]# smbclient -L //172.25.254.221 匿名进行访问,什么也看不到

在服务端安装samba服务(ip:172.25.254.221)
[root@server ~]# yum search samba 寻找samba安装包
samba-client.x86_64 : Samba client programs 客户端应用程序
samba-common.x86_64 : Files used by both Samba servers and clients Samba的支持文件
samba.x86_64 : Server and Client software to interoperate with Windows machines 服务器应用程序
[root@server ~]# yum install samba samba-client.x86_64 samba-common -y 安装samba服务
pdedit命令用于管理SMB服务程序的账户信息数据库:
参数 | 作用 |
---|---|
-a 用户名 | 建立samba用户 |
-x 用户名 | 删除samba用户 |
-L | 列出账户列表 |
-Lv | 列出账户详细信息的列表 |
[root@server ~]# systemctl start smb 开启服务
[root@server ~]# systemctl enable smb.service 开机自动启动
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@server ~]# systemctl stop firewalld 关闭防火墙
[root@server ~]# systemctl disable firewalld 开机自动关闭
[root@server ~]# netstat -antlupe | grep smb 查看samba端口
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 0 72127 3611/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 0 72128 3611/smbd
tcp6 0 0 :::445 :::* LISTEN 0 72125 3611/smbd
tcp6 0 0 :::139 :::* LISTEN 0 72126 3611/smbd
[root@server ~]# id student 查看用户信息
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@server ~]# id westos westos用户没有建立
[root@server ~]# smbpasswd -a student 添加student用户访问
在服务端配置samba用户:
[root@server ~]# smbpasswd -a westos 报错由于没有westos用户
[root@server ~]# useradd westos 建立westos用户
[root@server ~]# smbpasswd -a westos 添加westos用户访问
[root@server ~]# pdbedit -L 查看访问用户信息
student:1000:Student User
westos:1001:
[root@server ~]# pdbedit -x student 删除student用户访问
[root@server ~]# pdbedit -L 查看访问用户已经删除student
westos:1001:
[root@server ~]# smbpasswd -a student 重新添加student访问用户
New SMB password:
Retype new SMB password:
Added user student.
[root@server ~]# pdbedit -L 查看已经建立student用户
student:1000:Student User
westos:1001:

在客户端进行指定用户访问:
[root@client ~]# smbclient -L //172.25.254.221 -U student 用student用户进行访问
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
student Disk Home Directories disk表示可以访问挂载。
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@client ~]# smbclient //172.25.254.221/student -U student 直接登录,由于selinux功能影响
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \* 报错功能不允许代表服务端家目录没有开启所以不能访问
smb: \> quit

服务端打开家目录:
[root@server ~]# getsebool -a | grep samba 查看samba家目录为off
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off 布尔值允许本地 Linux 主目录作为 CIFS 文件共享导出至其他系统
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off 布尔值允许挂载远程 CIFS 文件共享并将其用作本地 Linux 主目录
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@server ~]# setsebool -P samba_enable_home_dirs on 打开samba家目录,-P永久打开家目录

客户端可以直接访问服务端家目录:
[root@client ~]# smbclient //172.25.254.221/student -U 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 Fri Jun 1 21:47:02 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. 28596 blocks available
smb: \> quit

SMB挂载:
在客户端路径内可以上传文件:
[root@client ~]# pwd 查看当前路径
/root
[root@client ~]# ls
anaconda-ks.cfg Documents Music Public Videos
Desktop Downloads Pictures Templates
[root@client ~]# cd /etc/ 在哪个路径就可以上传里面的东西
[root@client etc]# smbclient //172.25.254.221/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 Fri Jun 1 21:47:02 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. 28581 blocks available
smb: \> !ls 显示/etc/下的所有东西
smb: \> put passwd
putting file passwd as \passwd (65.3 kb/s) (average 65.3 kb/s)
smb: \> put /bin/ls 上传不了/bin/下面的东西
NT_STATUS_OBJECT_PATH_NOT_FOUND opening remote file \/bin/ls
smb: \> quit
[root@client etc]# cd /bin/ 切换到/bin/路径下才可以上传ls
[root@client bin]# smbclient //172.25.254.221/student -U student
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> !ls 显示/bin/目录下的所有文件
smb: \> put mcat 上传文件
putting file mcat as \mcat (9924.0 kb/s) (average 9924.0 kb/s)
smb: \> touch file 还是不能建立文件
touch: command not found
smb: \> quit

在服务端:(查看客户端上传的文件)
客户端上传的文件在服务端家目录下面:
[root@server ~]# cd /home/student/ 切换到家目录下
[root@server student]# ls
mcat passwd