SMB文件共享
用internet文件系统(CIFS)也成为服务器信是适用于MicrosoftWindows服务器和客户端的标准文件和打印共享系统息块
(SMB)
samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB网络文件共享进行共享
##
[root@xiaoqin ~] 服务端
##
[root@client ~] 客户端
服务端:
[root@xiaoqin ~]# yum install samba samba-client samba-common -y ##安装三个服务软件
[root@xiaoqin ~]# systemctl start smb ##打开服务
[root@xiaoqin ~]# systemctl enable smb ##开机自启
[root@xiaoqin ~]# systemctl stop firewalld.service ##关闭防火墙
[root@xiaoqin ~]# systemctl disable firewalld.service
客户端:
[root@client ~]# yum install samba-client.x86_64 -y (这是一个客户端)
[root@xiaoqin ~]# smbpasswd -a student (添加一个新用户(这个用户必须存在),student密码与登陆密码无关)
New SMB password:
Retype new SMB password:
Added user student.
[root@xiaoqin ~]# pdbedit -L (查看用户信息)
[root@xiaoqin ~]# pdbedit -x student (删除用户)
[root@xiaoqin ~]# pdbedit -L
[root@xiaoqin ~]# smbpasswd -a student
New SMB password:
Retype new SMB password:
Added user student.
[root@xiaoqin ~]# pdbedit -L
student:1000:Student User
客户端测试:
[root@client ~]# smbclient -L //172.25.30.235 -U student (登陆)
[root@client ~]# smbclient //172.25.30.235/student -U student
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \* (文件拒绝访问,原因来源与selinux)
查看错误原因来源于selinux安全上下文
服务端:
[root@xiaoqin ~]# getsebool -a | grep samba (查看smb服务的安全上下文)
[root@xiaoqin ~]# setsebool -P samba_enable_home_dirs on (永久开启)
客户端再次测试:
root@client ~]# smbclient //172.25.30.235/student -U student (访问)
## 只能上传你所在目录里的文件
客户端:
root@client ~]# cd /mnt
[root@client mnt]# ls
[root@client mnt]# touch file
[root@client mnt]# smbclient //172.25.30.235/student -U student
smb: \> !ls (查看本地文件)
file
smb: \> put file
putting file file as \file (0.0 kb/s) (average 0.0 kb/s) (上传成功)
客户端上传的文件所在目录在服务端的/home/student目录下
root@xiaoqin ~]# cd /home/student
[root@xiaoqin student]# ls
客户端:
root@client mnt]# mount //172.25.30.235/student /mnt/ -o username=student,password=qin (挂载)
[root@client mnt]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3150840 7323060 31% /
devtmpfs 927060 0 927060 0% /dev
tmpfs 942648 140 942508 1% /dev/shm
tmpfs 942648 17048 925600 2% /run
tmpfs 942648 0 942648 0% /sys/fs/cgroup
//172.25.30.235/student 10473900 3156736 7317164 31% /mnt
[root@client mnt]# cd /mnt
[root@client mnt]# ls
file
[root@client mnt]# touch westos{1..10}
[root@client mnt]# ls
file westos1 westos10 westos2 westos3 westos4 westos5 westos6 westos7 westos8 westos9
[root@client mnt]# rm -fr westos*
服务端:
测试发现共享成立
1.自动挂载配置文件 (当客户端smb未开启,或者服务端smb未开启时自动挂载会失败)
vim /etc/fstab
2.脚本自动挂载 (如果smb文件未开启,则不会自动挂载,如果开启自动挂载) 相较于1来说较好
[root@client ~]# vim /etc/rc.d/rc.local
[root@client ~]# chmod +x /etc/rc.d/rc.local (加权之后重启系统测试成功)
1.名字同步:
服务端中:
[root@xiaoqin student]# systemctl start smb (打开smb)
[root@xiaoqin student]# vim /etc/samba/smb.conf (打开配置文件,修改名字)
[root@xiaoqin student]# systemctl restart smb.service (重启服务)
客户端:
[root@client ~]# smbclient -L //172.25.30.235 (查看名字是否改了)
2.共享目录
2.1第一种方法:
服务端:
[root@xiaoqin student]# mkdir /westos
[root@xiaoqin student]# semanage fcontext -a -t samba_share_t '/westos(/*)?' (添加westos目录到安全上下文中)
[root@xiaoqin ~]# restorecon -RvvF /westos/ (刷新)
[root@xiaoqin student]# vim /etc/samba/smb.conf (添加配置文件)
[root@xiaoqin student]# systemctl restart smb.service
[root@xiaoqin student]# chmod 777 /westos
客户端:
[root@client ~]# smbclient //172.25.30.235/DIR -U student (名字登陆)
2.2第二种方法:
服务端:
[root@xiaoqin student]# vim /etc/samba/smb.conf (添加配置文件)
write list = @或者+westos 表示对westos组可写 westos可写列表
[root@xiaoqin ~]# useradd westos
[root@xiaoqin ~]# smbpasswd -a westos
客户端:
[root@client ~]# smbclient //172.25.30.235/DIR -U westos (组登陆)
这时候student不属于westos组
要想student用户可以共享目录,需要将student用户加入到westos组中
服务端:
usermod -G westos student
客户端再次测试student用户登陆测试:
[root@client ~]# smbclient //172.25.30.235/DIR -U student
3.共享隐藏
服务端:
browseable = yes or no 表示是否可以使用smbckient -L 去浏览文件
客户端:
oot@client ~]# smbclient -L //172.25.30.235 (可以看见DIR 共享)
4.匿名访问:
在默认情况下客户端是不能匿名访问文件的
服务端:
vim /etc/samba/smb。conf
map to guest = bad user (bad user所有用户)
guest ok = yes (匿名用户可以浏览)
systemctl restart smb (刷新)
客户端:
root@client ~]# smbclient //172.25.30.235/DIR (查看可以匿名访问)