您的位置:首页 > 理论基础 > 计算机网络

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

2017-08-19 15:44 711 查看

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文件系统的讲解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: