SMB文件共享
用Internet文件系统(CIFS)也成为服务器信息是适用于MicrosoftWindows服务器和客户端的标准文件和打印机共享系统(SMB)。
Samba服务可用于将Linux文件系统作为CIFS/SMB网路文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享。
1.samba的其本配置和登陆访问
服务端:
yum install samba samba-client samba-common -y 安装(common 提供文件)
systemctl start smb 打开smb服务
syatemctl enable smb 开机自开启
systemctl stop firewalld 关闭火墙
systemctl disable firewalld 开机自关闭
netstat -antlpue | grep smb 查看smb的端口
客户端:
yum install samba-client -y 安装
smbclient -L //172.25.254.207 (无密码)列出共享的文件(匿名登陆)
服务端:
smbpasswd -a student(用户) 创建smb用户(必须是系统中存在的用户)
smbpasswd -a westos
pdbedit -L 查看创建的用户
pdbedit -x student 删除创建的用户
客户端:
smbclient -L //172.25.254.207 -U student(指定用户登陆,有密码,自己设置的)
smbclient //172.25.254.207/student -U student (密码)(指定用户查看指定文件)
ls (报错:访问被拒绝 证明selinux值导致出错)
服务端:
getsebool -a | grep samba (查看samba的sebool值)
setsebool -P samba_enable_home_dirs on 打开服务
客户端:
smbclient -L //172.25.254.207 -U student(有密码,自己设置的)
smbclient //172.25.254.207/student -U student (密码)
ls (查看成功)
2.smb上传文件:
客户端:
msbclient //172.25.254.207/student -U student
put 文件名 (上传文件必须是当前目录下的文件)
上传的文件在服务端的/home/student下(用户的家目录下)
挂载设备:
mount //172.25.254.207/student -o username=student,password=123
直接用touch命令可以进行写操作 (写的文件在用户家目录下)
永久开机自动挂载:
vim /etc/fstab
//172.25.254.207/student /mnt cifs default,username=student,password=123 0 0
mount -a
建议重新装一个虚拟机
vim /etc/rc.d/rc.local
mount //172.25.254.207/student /mnt -o username=student,password=123
chmod +x /etc/rc.d/rc.local 权限
reboot
3.基本配置的更改:
更改组:
vim /etc/samba/samba.conf
workgroup=westos
验证: sambaclient -L //172.25.254.207
黑白名单:
vim /etc/samba/samba.conf
host allow = 172.25.254.107
验证: 172.25.254.107登陆: 查看成功
172.25.254.75登陆:失败
4.如何共享目录:
(1)自己建立的目录:
服务端:
mkdir /westos
vim /etc/samba/samba.conf
[DIR]
comment = /westos dir
path = /westos
systemctl restart samba.service
semanage fcontext -a -t samba_share_t '/westos(/.*)?'修改安全上下文
restorecon -FvvR /westos 刷新安全上下文
客户端:
smbclient -L //172.25.254.207 -U student
smbclient //172.25.254.207/DIR -U student
(2)系统中含有的目录:不能使用修改安全上下文的方式(修改之后系统的其他服务不能访问)
服务端:
vim /etc/samba/samba.conf
[mnt]
comment = /mnt dir
path = /mnt
systemctl restart samba.service
touch /mnt/file
客户端:
smbclient //172.25.254.207/mnt -U student
ls 查看/不能查看 证明是selinux的值影响
服务端:setsebool -P samba_export_all_ro on
客户端:
smbclient //172.25.254.207/mnt -U student
ls 查看
5.smb用户的可写权限
服务端:
vim /etc/samba/samba.conf
[DIR]
comment=westos
path=/westos
browseable=yes|no 是否允许浏览
writable = yes|no 是否可写
write list=student 允许用户可写的列表
@/+ 用户 表示用户的组有可写权限
admin users = westos 管理身份为westos
客户端:
mount //172.25.254.107/DIR -o username=westos/student,password=123
cd /mnt
touch file
6.samba多用户的挂载:
客户端:
vim /root/smbpass
username=student
password=123
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.200/DIR /mnt 认证文件 认证方式 多用户挂载参数
cd /mnt
ls
useradd lee 创建用户
su - lee
cifscreds add -u westos 172.25.254.207 (输入密码) samba用户认证
cifscreds clear westos 172.25.254.207 清除某一个的认证(密码输入错误后,不允许再次认证,时使用)
cifscreds clearall 清空认证
7.smb匿名用户登陆:
服务器:
vim /etc/samba/samba.conf
map to guest = bad user
guest ok = yes
systemctl restart smb.service
客户端:
smbclient //172.25.254.207/DIR
mount //172.25.254.207/DIR /mnt -o username=guest,passwd=""