linux学习之旅(二十二)&CIFS网络文件系统

SAMBA/CIFS概要:

CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享。CIFS可以在Linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是windows系统。

提供CIFS的服务是SAMBA

Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(DomainController)以及加入Active.Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。

实现了存储分离,他可以挂载,真正进行操作,而和apache不一样,不只是文件传输。

SAMBA 服务器总共需要至少三个套件:

  • samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 (document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等;
  • samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 (testparm )等等;
  • samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA档案格式的执行档 smbmount等等。

SAMBA服务的具体配置:

yum install samba samba-common samba-client -y   //安装组件
开启服务,开机自启,关闭火墙
  • samba端口在TCP,UDP都开了
[root@localhost ~]# smbpasswd -a student  //添加用户
New SMB password:
Retype new SMB password:
Added user student.

pdbedit -L  //查看用户信息
"注意要关闭selinuxm,不然无法查看"
smbclient -L //172.25.254.209 -U student  //查看信息

smbclient //172.25.254.209/student -U student  //以studennt身份登陆进入文件系统

在另一台主机上直接挂载
mount -o username=student,password=student //172.25.254.209/student /mnt
//df发现挂载上了,这样,哪怕原来的服务器挂掉,也可以使用了,这样,就实现了存储分离
//也可以直接登陆上去,不一定要挂载

查看samba
1.可以挂载用文件系统看
2.用登陆看
3.用本地看

如果需要selinux处于强制模式保证安全性,那么其实,打开相应的selinux权限就可以访问了,不用关闭selinux

setsebool -P samba_enable_home_dirs on    //开启samba权限
  • 不能更改安全上下文时才会去修改布尔值
    普通目录更改安全上下文就可以,但是系统级的目录因为不能随意修改,所以修改他的布尔值,改完布尔值之后,就再不用考虑安全上下文了


  • samba里面的配置都在/etc/samba/smb.conf更改里面的配置信息
  • man smb.conf 可以查看详细的配置文件写法
    比如89行 workgroup = WESTOS
//修改完退出需要重启smb服务
那么再次查看信息时 Domain=[WESTOS] //显示域是WESTOS


//同样的,还可以设置登陆限制

编辑文件还可以增加自己创建的目录

  • 但是会发现登陆不进去:


  • 需要开启samba_export_all_ro
  • 开启后/westos就可以查看了

给DATA目录添加设定:
browseable = no
//是否使你的共享在客户端发现时被发现,no 隐藏
guest ok = yes
///是否可以让匿名用户访问,默认值是no,如果关闭了就不谈后面映射了

把无身份的bad user映射成 guest匿名用户:

map to guest = bad user


修改完重启服务生效

用匿名用户连接
[root@foundation9 ~]# mount -o username=guest //172.25.254.209/DATA /mnt
Password for guest@//172.25.254.209/DATA:  
[root@foundation9 ~]# df

打开/etc/fstab,文件类型是cifs
//172.25.254.209/DATA  /mnt cifs defaults,username=guest,password="" 0 0   ##无密码,不检测,不备份

保存退出后,mount -a 就直接可以挂上了

writable = yes    ##是否对文件内部可写

  • 查看时出问题,先看selinux是否数了问题 系统级的目录需要改布尔值,不能改上下文

  • samba_export_all_rw 开启

restorecon -RvvF dir   //刷新布尔值

再看权限是否允许,这里我们用student登陆,所以文件的使用者student的权限要给
可以直接给777
chmod 777 /westos/
## /mnt 本来权限就是777

下来才是配置文件的写入问题 
添加writable = yes

登陆进入samba之后可以输入 help查看当前有的命令
登陆进去如果没有一些命令,挂载就有了

新建用户lee
将lee添加到smb中

首先设定writadble = no 关闭对所有可写,然后单独给定权限
write list = student
 指定用户可写student
         +student  |  @student 用户组

将lee添加到student的附属组
用那个身份挂载建立的文件就是谁的

admin users = lee ,lee建立的文件所属用户root
挂载之后在挂载的文件中建立文件,查看文件的属性,是root用户lee组


  • 再次强调,本地chmod设置的权限是针对本地用户的 哪怕就是别人远程登陆共享,权限也是按每个服务器自己的,根主机chmod设置的没关系



SMB多用户挂载

server端

yum install cifs-utils -y ##安装这个文件,可以管理登陆访问的权限
man mount.cifs
[root@foundation9 /]# vim /root/smbpassword  ##指定认证密码文件
username=lee
password=lee
chmod 600 /root/smbpassword     ##这个是为了安全性考虑
挂载:
mount -o credentials=/root/smbpassword,multiuser,sec=ntlmssp //172.25.254.209/CONFIG /mnt/
##此时,kiosk用户就无法查看挂载的/mnt了,需要认证才可以进入

认证方法: cifscreds
Usage:
cifscreds add [-u username] [-d] < host|domain>
cifscreds clear [-u username] [-d] < host|domain>
cifscreds clearall
cifscreds update [-u username] [-d] < host|domain>

直接输入指令就是查看基本的帮助

cifscreds add -u lee 172.25.254.209  ##以lee登陆


//在其中建立文件,这里的文件的建立就按lee的相应配置来

client端:

 touch /mnt/tes
//在client端看的时候,文件的所属是kiosk,即客户端的用户,但是实际并不是

//在刚刚对CONFIG的设定,新建立的文件的权限在server端查看:
[root@smb_server ~]# ll /mnt/tes
-rw-r--r--. 1 root lee 0 Aug 14 23:43 /mnt/tes

这个目录共享可用的用户
valid users = student
@student | +student 用户组

修改时注释掉匿名用户


  • 发现,只有用student用户可以登陆,lee就会被拒绝
    变成 +student之后,因为已经设置过lee是student组,所以lee又可以登陆了


samba主要针对windows客户端与linux客户端
linux与linux客户端质之间用NFS ,下一篇将是对NFS文件系统的讲解

发布了55 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/mon_star/article/details/77413130