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文件系统的讲解
相关文章推荐
- linux学习之旅(二十三)&NFS网络文件系统
- IBM UNIX & LINUX -AIX 5L 系统管理技术 学习笔记1 -网络文件系统 NFS network file system
- Docker核心实现技术 (命名空间 & 控制组 & 联合文件系统 & Linux网络虚拟化支持)
- Docker核心实现技术(命名空间&控制组&联合文件系统&Linux网络虚拟化支持)
- Linux学习nfs网络文件系统
- Linux&C语言文件学习笔记(三):文件I/O与系统API
- Linux&C语言文件学习笔记(四):文件I/O与系统API续
- linux初级学习之访问网络共享文件系统2-7
- Linux文件系统代码学习笔记2——Hash表&内存inode的创建与回收
- Linux运维笔记-文档总结-cifs网络文件系统访问
- linux 基础 cifs网络文件系统访问 ;ldap网络帐号
- Linux网络服务_cifs文件系统
- Linux 网络系统学习 IPv6 的初始化(详细而全面)
- linux proc文件系统学习 (转)
- scp:实现网络中Linux系统下文件互相拷贝功能
- linux & C++Primer 学习笔记--fstream 非常好用的文件操作流
- [转]Linux下NFS(网络文件系统)的建立与配置方法
- (cc)2.6版本Linux上替换系统调用函数实现隐藏文件学习
- Linux下NFS(网络文件系统)的建立与配置方法
- VMware中打造最小Linux系统(一)——构建内核&文件系统