SMB 文件共享
用 Internet 文件系统 (CIFS) 也称为服务器信是适用于
MicrosoftWindows 服务器和客户端的标准文件和打印机共享
系统息块 (SMB)
Samba 服务可用于将 Linux 文件系统作为 CIFS/SMB 网络文
件共享进行共享 , 并将 Linux 打印机作为 CIFS/SMB 打印机共
享进行共享
Samba 服务的组成部分
软件包 :
Samba-common – Samba 的支持文件
Samba-client – 客户端应用程序
Samba – 服务器应用程序
服务名称 :smb nmb
服务端口 : 通常使用 TCP/445 进行所有连接。还使用
UDP137 、 UDP138 和 TCP/139 进行向后兼容
主配置文件 :/etc/samba/smb.conf
(一)
在服务端:
yum search samba ##查询samba的安装包
yum install samba-client samba-common samba -y ###安装这三个软件
systemctl start smb ##开启smb服务
systemctl enable smb ##设置开机自启动
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ###设置开机不自启动火墙
netstat -antlupe | grep smb ###查看smb所开的端口
id student ##查看用户
id westos ###查看用户
useradd westos ###建立westos用户
smbpasswd -a student ###添加smb用户
smbpasswd -a westos
pdbedit -L ###查看添加的smb用户
pdbedit -x student ####删除smb用户
getsebool -a | grep samba ###查看samba的sebool值
setsebool -P samba_enable_home_dirs on ###打开开关
在客户端:
yum install samba-client -y
smbclient -L //172.25.254.217 ###查看smb匿名用户
smbclient //172.25.254.217/student -U student ##普通用户登陆smb
smbclient -L //172.25.254.217 -U student ###查看smb里的student用户
smbclient -L //172.25.254.217 -U westos ###查看smb里的westos用户
smbclient //172.25.254.217/student -U student ##普通用户登陆smb
当服务端samba用户家目录访问开关开启后
(二)
在客户端:
cd /etc/ ###要上传什么文件,就需要先进入其所在目录
smbclient //172.25.254.217/student -U student
####进入后上传passwd
cd /bin/
smbclient //172.25.254.217/student -U student
#####进入后上传ls
mount //172.25.254.217/student /mnt/ -o username=student,password=123 ##挂载到/mnt下
永久挂载
1. umount /mnt
vim /etc/fstab
写入://172.25.254.217/student /mnt cifs defaults,username=student,password=123 0 0
mount -a ###刷新挂载
2.vim /etc/rc.d/rc.local
写入:mount -o username=student,password=123 //172.25.254.217/student /mnt
reboot ##重启
df ###查看挂载
cd /mnt/ ###切入/mnt目录
touch file{1..5} ###建立5个文件
ls ###查看是否建立
在服务端:
cd /home/student ####因为是student登录的,所以建立的东西在/home/student里
ls
####查看里面上传的文件和挂载到/mnt后建立的文件
(三)
在服务端:
rpm -qc samba-common
vim /etc/samba/smb.conf
修改:workgroup = XBW ###更改工作目录
vim /etc/samba/smb.conf
写入:hosts allow 172.25.254.117 ###白名单设定
systemctl restart smb
在客户端172.25.254.117上
在服务端172.25.254.217上
vim /etc/samba/smb.conf
hosts deny 172.25.254.117 ###黑名单设定
systemctl restart smb
在客户端172.25.254.117上
在服务端172.25.254.217上
(四)
在服务端:
mkdir /westos
vim /etc/samba/smb.conf ##共享自己建立的目录
写入:[DIR]
comment = westos dir
path = /westos
systemctl restart smb
semanage fcontext -a -t samba_share_t '/westos(/.*)?' ##修改/westos安全上下文类型
restorecon -RvvF /westos/ ###刷新
ls -Zd /westos/ ###查看安全上下文类型
在客户端:smbclient //172.25.254.217/DIR -U student ##登陆并共享DIR目录
ls ###进行测试
在服务端: touch /mnt/file{1..5}
ls /mnt/
vim /etc/samba/smb.conf ###共享系统已有的目录
写入:[mnt]
comment = /mnt dir
path = /mnt
systemctl restart smb
setsebool -P samba_export_all_ro on ###修改sebool值,系统目录samba只读设置
在客户端:smbclient //172.25.254.217/mnt -U student ##登陆并共享mnt目录
ls ###进行测试,查看是否能看见建立的5个文件
(五)
在服务端:
vim /etc/samba/smb.conf
写入: [DIR]
comment = westos dir
path = /westos
browseable = no ####yes表示可以浏览,no表示目录直接会被隐藏
浏览验证:smbclient -L //172.25.254.217/DIR -U student
DIR目录被隐藏了
vim /etc/samba/smb.conf
写入: [DIR]
comment = westos dir
path = /westos
writable = yes ##yes表示所有用户可写,no都不可写,做测试时先chmod 777 /westos 增大目录权限,不然都会被拒绝(因为你是用普通用户登陆的)
写验证:
mount //172.25.254.217/DIR /mnt/ -o username=student,password=123
touch /mnt/file ##验证
vim /etc/samba/smb.conf
写入: [DIR]
comment = westos dir
path = /westos
browseable = yes ##yes表示可以浏览,no表示目录直接会被隐藏
writable = yes ##yes表示所有用户可写,no都不可写,做测试时先chmod 777 /westos 增大目录权限,不然都会被拒绝(因为你是用普通用户登陆的)
write list = @student ##(当不加@时表示,只有student可写,当加上@时,只要是student组的用户也可以写)
写验证:
mount //172.25.254.217/DIR /mnt/ -o username=student,password=123
touch /mnt/file ##验证
umount /mnt
mount //172.25.254.217/DIR /mnt/ -o username=westos,password=234
touch /mnt/file2 ##验证
此时westos用户不能写:
当westos添加student组后便可写:
在服务端:
vim /etc/samba/smb.conf
写入: [DIR]
comment = westos dir
path = /westos
browseable = yes ##yes表示可以浏览,no表示目录直接会被隐藏
writable = yes ##yes表示所有用户可写,no都不可写,做测试时先chmod 777 /westos 增大目录权限,不然都会被拒绝(因为你是用普通用户登陆的)
write list = @student ##(当不加@时表示,只有student可写,当加上@时,只要是student组的用户也可以写)
admin users = westos ##表示westos用户对DIR这个共享目录来说是超户,做之前先 chmod 755 /westos 把权限改为原来的
在客户端:
写验证:
mount //172.25.254.217/DIR /mnt/ -o username=student,password=123
touch /mnt/file3 ##验证
samba的多用户认证
yum install cifs-utils.x86_64 -y ###安装cifs-utils
vim /root/smbpass
写入:username=student
password=123
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.217/DIR /mnt ####以ntlmssp认证方式挂载到/mnt下
cd /mnt/
ls
useradd linux
su - linux ###切换一个实际用户,验证是否能够访问
ls /mnt ###会被deny掉,拒绝
cifscreds add -u westos 172.25.254.217 ##添加一个samba用户,进行验证
输入密码234
ls /mnt ##就可以看到了