糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 文件共享之SMB/CIFS协议及Samba的使用

文件共享之SMB/CIFS协议及Samba的使用

时间:2019-01-07 08:58:36

相关推荐

文件共享之SMB/CIFS协议及Samba的使用

1 SMB/CIFS协议及Samba的介绍

1.1 SMB/CIFS协议

 SMB(Server Message Block)又称CIFS(Common Internet File System),一种应用层网络传输协议(微软(Microsoft)和英特尔(Intel)在1987年制定的协议),由微软开发,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的进程间通讯技能。它主要用在Windows的机器上。

 CIFS是由microsoft在SMB的基础上发展,扩展到Internet上的协议。他和具体的OS无关,在unix上安装samba后可使用CIFS.它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。

 CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议现在是局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。

1.2 Samba软件

Samba是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。

samba是许多服务以及协议的实现,其包括TCP/IP上的NetBIOS、SMB、CIFS等等协议。

2 Samba的使用

2.1 samba服务的组成部分

Samba-common – 用来提供一些配置文件

Samba-client – 客户端应用程序

Samba – 服务端应用程序

samba在linux系统上的服务名称:smb

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

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

2.2 服务端(server虚拟机)的配置

使用该软件可以使windows和linux的资源共享,接下来我们仅示例linux系统中共享文件后使用samba的操作,和windows共享文件之后在linux系统的操作一致在服务端:yum install samba-client.x86_64 samba-common.x86_64 samba.x86_64 -y smbpasswd -a westos #创建smb登陆用户,必须为服务端主机存在的用户pdbedit -L #查看系统中smb用户当selinux=enforcing时,mkdir /west#建立共享目录semanage fcontext -a -t samba_share_t '/west(/.*)?'restorecon -RvvF /westvim /etc/samba/smb.conf[LEE] #共享名称(等于作为磁盘名字) path=/west #共享目录的绝对路径 systemctl restart smbsystemctl enable smb.servicesystemctl stop firewalld

2.3 客户端(desktop虚拟机)的操作

yum install samba-clientsmbclient -L //172.25.254.133 发现共享出来的目录与文件smbclient //172.25.254.133/LEE 不能登陆,需要用户smbclient //172.25.254.133/LEE -U westos挂载共享出来的目录:mount //172.25.254.133/LEE /mnt -o username=westos,password=westoscd /mnt

3 修改共享目录的参数

3.1 修改目录说明(comment)

vim /etc/samba/smb.confcomment=west dir systemctl restart smb smbclient -L //172.25.254.133 #发现共享出来的目录与文件,会看到目录的comment改变

3.2 设置共享文件隐藏,但并不是代表没有共享,照样可以使用

vim /etc/samba/smb.confbrowseable=no (默认是yes)systemctl restart smb smbclient -L //172.25.254.133 发现不了共享目录smbclient //172.25.254.133/LEE -U westos 但是可以登陆使用

3.3 设置哪些用户可以登陆smb

服务端:vim /etc/samba/smb.confvalid users=westos 只允许用户westos登陆systemctl restart smb 添加用户smb用户lee,studentuseradd lee ;smbpasswd -a lee pdbedit -L 查看该服务用户pdbedit -x student 删除student用户客户端:smbclient //172.25.254.133/LEE -U lee 不可以登陆使用smbclient //172.25.254.133/LEE -U westos 可以登陆使用

3.4 设置登陆列表

vim /etc/samba/smb.confvalid users=+westos 允许用户组westos登陆,用户属于westos组都可以登陆(@符也可以)systemctl restart smb useradd -G westos leesmbclient //172.25.254.133/LEE -U lee 可以登陆使用

3.5 设置用户是否可写

服务端:vim /etc/samba/smb.confwritable=yessystemctl restart smb smbclient //172.25.254.133/LEE -U lee put和rm不行,文件系统权限没有setfacl -m u:lee:rwx /westsetfacl -m u:westos:rwx /west客户端:smbclient //172.25.254.133/LEE -U lee smbclient //172.25.254.133/LEE -U westos 都可以进行写操作

3.6 设置可写列表

vim /etc/samba/smb.confwrite list=leesystemctl restart smb smbclient //172.25.254.133/LEE -U lee 可以写smbclient //172.25.254.133/LEE -U westos 不可以写

3.7 设置可写用户组

vim /etc/samba/smb.confwrite list=@leesystemctl restart smb smbclient //172.25.254.133/LEE -U lee 可以执行写操作smbclient //172.25.254.133/LEE -U westos 不可以执行写操作usermod -G lee westossmbclient //172.25.254.133/LEE -U westos 可以执行写操作了

3.7 设置匿名用户是否可以登陆

smbclient //172.25.254.133/LEE 本身匿名用户不能登陆vim /etc/samba/smb.confguest ok=yessystemctl restart smb smbclient //172.25.254.133/LEE 可以登陆了但是,该身份仅在smb交互界面可以使用,不能用来挂载,需要添加参数:vim /etc/samba/smb.confmap to guest=bad user systemctl restart smb mount //172.25.254.133/LEE /mnt -o username=guest

3.8 设置共享文件的超户

当我添加了smb用户student后,把writable=yes可写参数打开但是使用student用户登陆,不可写smbclient //172.25.254.133/LEE -U student 仍然不能可写因为getfacl列表中只对超户、lee、westos可写我们把student设置为超户实现studnet用户可写vim /etc/samba/smb.confadmin users=studentsmbclient //172.25.254.133/LEE -U student 可写了put anaconda-ks.cfg 在服务端查看时,cd /westll 上传的anaconda-ks.cfg文件所有人为root

3.9 改变文件所在区组

vim /etc/samba/smb.conf89行 workgroup=WESTOSsystemctl restart smb smbclient //172.25.254.133/LEE -U westos 可以看到domain的名字改变了

3.10 smb的多用户挂载

当我使用用户lee挂载到/mnt后,//172.25.254.133/LEE 的usernmae=lee但是当我切换成linux用户时,同样可以查看/mnt下的文件在客户端:yum install cifs-utils -yumount /mntvim /root/smbauthusername=leepassword=leechmod 600 /root/smbauthmount //172.25.254.133/LEE /mnt -o credentials=/root/smbauthumount /mntmount //172.25.254.133/LEE /mnt -o credentials=/root/smbauth,sec=ntlmssp,multiuser这时,要想查看/mnt需要进行用户的验证su - linuxcd /mntcifscreds add -u westos 172.25.254.133 #进行westos用户的认证cifscreds add -u westos 172.25.254.133 #当认证了之后再次添加认证,会提示你已经认证过cifscreds clear -u westos 172.252.54.133 #清空认证cifscreds add -u westos 172.25.254.133 touch file#建立文件 使用的用户是westos,但是客户端显示为linux用户,因为linux和westos的id=1001exit再次建立文件,使用的是lee,为挂载时使用的用户

credentials=/root/smbfile指定挂载时所用到的用户文件

multiuser 支持多用户认证

sec=ntlmssp 认证方式为标准smb认证方式

3.11 开机自动挂载

vim /etc/fstab//172.25.254.133/LEE /mnt cifs defaults,credentials=/root/smbauth,sec=ntlmssp,multiusermount -a

如果觉得《文件共享之SMB/CIFS协议及Samba的使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。