Samba服务器访问CIFS网络共享文件

Samba服务器访问CIFS网络共享文件

一、基础信息

用Internet文件系统CIFS(Common Internet File System)也称为服务器信是适用于MicrosoftWindows服务器和客户端的标准文件和打印机共享系统息块(SMB)

Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享

软件包:

Samba-common    ##Samba 的支持文件

Samba-client         ##客户端应用程序

Samba                   ##服务器应用程序

服务名称smb、nmb

服务端口:通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容

主配置文件:/etc/samba/smb.conf

二、存储分离

服务端:

[[email protected] ~]# iptables -F     ##刷空iptables策略

[[email protected] ~]# iptables -nL    ##查看

Samba服务器访问CIFS网络共享文件

安装需要的软件

[[email protected] ~]# yum install samba-common.x86_84 samba.x86_64 samba-client -y

[[email protected] ~]# systemctl start smb           ##开启

[[email protected] ~]# id student                         ##samba用户必须是系统存在用户

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# smbpasswd -a student      ##设置samba用户登陆密码

[[email protected] ~]# smbclient -L //172.25.254.124 -U student   ##列出samba共享用户信息,登陆student

 Samba服务器访问CIFS网络共享文件

[[email protected] ~]# smbclient -L //172.25.254.124    ##登陆匿名用户,并列出信息

Samba服务器访问CIFS网络共享文件

这里匿名用户的Samba登陆密码为空,按下回车即可

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# getsebool -a | grep samba     ##查看状态

Samba服务器访问CIFS网络共享文件

永久打开samba_enable_home_dirs(-P表示永久

[[email protected] ~]# setsebool-Psamba_enable_home_dirs on

[[email protected] ~]# smbclient //172.25.254.124/student -U student   ##查看共享信息

Samba服务器访问CIFS网络共享文件

客户端:

挂载共享,共享成功:

[[email protected] ~]# mount -o username=student,password=123 //172.25.254.124/student /mnt/

效果演示:

在客户端新建目录:

Samba服务器访问CIFS网络共享文件

在服务端可见共享成功

 Samba服务器访问CIFS网络共享文件

完成项目实验,卸载之

[[email protected] ~]# umount /mnt/


三、修改workgroup的名称

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# vim /etc/samba/smb.conf    ##如下,已经改为Linux

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb           ##重启服务

如下,修改成功!!!

Samba服务器访问CIFS网络共享文件


四、创建一个共享目录并修改相关信息

强制性状态

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

共享名称为DATA、共享描述为qq data,共享路径为/westos

[[email protected] ~]# systemctl restart smb

[[email protected] ~]# smbclient -L //172.25.254.124

效果如下:

Samba服务器访问CIFS网络共享文件

创建/westos目录

[[email protected] ~]# mkdir /westos/

Samba服务器访问CIFS网络共享文件

修改安全上下文

[[email protected] ~]# semanage fcontext -a -t samba_share_t '/westos(/.*)?'

[[email protected] ~]# restorecon -FvvR /westos/

[[email protected] ~]# smbclient //172.25.254.124/DATA -U student

效果如下:

Samba服务器访问CIFS网络共享文件

 

在服务器主机上的/westos新建文件

[[email protected] ~]# touch /westos/file{1..3}

可以看到成功共享  

Samba服务器访问CIFS网络共享文件


五、允许匿名登陆

思想:把匿名用户映射为guset,以此让匿名用户可以登陆

[[email protected] ~]# vim /etc/samba/smb.conf           ##添加匿名用户身份guest

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb

客户端测试:

注意,匿名用户的密码为空

[[email protected] ~]# smbclient //172.25.254.124/DATA username=guest,password=""

Samba服务器访问CIFS网络共享文件

开机自动挂载:

[[email protected] ~]# vim /etc/fstab

//172.25.254.124/DATA                     /mnt                   cifs     defaults,username=guest,password="" 0  0

[[email protected] ~]# mount -a

Samba服务器访问CIFS网络共享文件

 

六、对DATA可进行操作

可挂载前提下的操作

(1)任何smb用户都可以新建删除

服务端:

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb

客户端:

[[email protected] ~]# mount -o username=student,password=123 //172.25.254.124/DATA /mnt/

Samba服务器访问CIFS网络共享文件

此时,是文件系统拒绝被写,则需要修改服务器的目标目录/westos权限

[[email protected] ~]# setfacl -m u:student:rwx /westos/

Samba服务器访问CIFS网络共享文件

客户端再次访问时,对其可写了

 Samba服务器访问CIFS网络共享文件

(2)只允许student用户新建删除

服务端:

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb

新建系统用户以及samba用户xixi

[[email protected] ~]# useradd xixi

[[email protected] ~]# smbpasswd -a xixi

New SMB password:

Retype new SMB password:

Added user xixi.

客户端:

可以看到xixi用户不可写,只有student用户可以写

Samba服务器访问CIFS网络共享文件

(3)只允许student用户组下的用户新建删除

服务端:

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

注:+或@表示组的含义

[[email protected] ~]# systemctl restart smb

把/westos的组改为student

[[email protected] ~]# setfacl -m g:student:rwx /westos/

把用户xixi归属于student

[[email protected] ~]# usermod -G student xixi

客户端:

Samba服务器访问CIFS网络共享文件

(4)赋予用户admin,使其对文件系统/westos/具有超级用户admin身份,进行新建删除

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb

添加系统用户以及samba用户

[[email protected] ~]# useradd admin

[[email protected] ~]# smbpasswd -a admin

查看用户

Samba服务器访问CIFS网络共享文件

客户端:

Samba服务器访问CIFS网络共享文件


七、挂载问题

1、no表示隐藏DATA,但是仍然可以挂载

服务端:

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb

客户端:

可以看到DATA已经隐藏,但是仍然可以挂载

Samba服务器访问CIFS网络共享文件

2、DATA隐藏后,只有student用户可以挂载

服务端:

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb

客户端:达到预期效果

Samba服务器访问CIFS网络共享文件

3、DATA隐藏后,只有student用户组可以挂载

服务端:+@表示组的意思

[[email protected] ~]# vim /etc/samba/smb.conf

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# systemctl restart smb

客户端:admin用户不是student组,故不能挂载

Samba服务器访问CIFS网络共享文件


八、安全性

多用户管理,多用户挂载,并且该用户是通过安全认证的

客户端:

[[email protected] ~]#  yum install cifs-utils -y

在root下新建smbfile以保存用户信息

[[email protected] ~]# vim /root/smbfile 

Samba服务器访问CIFS网络共享文件

[[email protected] ~]# chmod 600 /root/smbfile    ##改其权限

挂载的同时,以student身份通过认证

[[email protected] ~]#  mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp //172.25.254.124/DATA /mnt/

[[email protected] ~]# exit        ##切换到kiosk用户此时kiosk未认证,即没有权限

Samba服务器访问CIFS网络共享文件

以服务器主机smb用户xixi的身份通过认证

[[email protected] ~]$ cifscreds add -u xixi 172.25.254.124

加以验证:

Samba服务器访问CIFS网络共享文件

此时kiosk新建三个目录

[[email protected] ~]$ mkdir  /mnt/kiosk{1..3}

服务端:很清楚

Samba服务器访问CIFS网络共享文件


附录:

cifs   -->windows+sun   普通网络文件系统    samba    不能自动挂载     windows、linux

nfs    -->IBIN                  网络文件协议             nfs           自动挂载           只能linux