赞
踩
SMB(Server Message block)协议是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。
Samba共享的是文件系统!共享之后可以像操作自己的主机一样操作远端电脑!
Samba服务是SMB的一个开源实现,而smb的一些主要功能如下:
SMB协议又称为CIFS(Common Internet File System)协议
SAMBA
安装samba。
Yum install samba -y
两个服务:
smbd (提供samba核心功能也是使用最多的一种功能) 提供文件及打印共享服务功能,使用139/445端口
nmbd 提供Netbios(解析协议慢慢的被淘汰)支持,使用137/138端口,而对于这种协议使用较少,现在都是dns进行解析
一般作为文件共享使用samba,则只需要smbd服务
Samba配置文件三部分中各参数的意义说明:
[global]
workgroup = MYGROUP 定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)
server string = Samba Server Version %v
设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用%v = Samba服务的版本号。
log file = /var/log/samba/log.%m 定义记录文件的位置LogFileName
max log size = 50
定义记录文件的大小size(单位是KB,如果是0的话就不限大小)
security = user
定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:
* share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
* user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。
* server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。
* domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。
load printers = yes
[homes]
在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。下面是这个段的最基本的几个设置。
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
write list = +staff @用来指定可以在该共享下写入文件的用户
这里printable指明该打印机可以打印, guest ok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。
Samba服务的使用过程
添加samba用户
(先useradd添加用户,再将用户映射成smb用户)
[root@localhost samba]# smbpasswd -a xixi
查看samba用户用
#pdbedit -L
案例1
要求:
1、通过samba实现公司的文件交换服务器,
2、实现/public 目录让所有人访问,所有人都可以写入文件
配置示例:
[root@localhost samba]# cat smb.conf
[global]
workgroup = workgroup 指定域名
[public]
path = /public
public = yes
comment = file
writable = yes
用户控制:
public =所有用户都可以访问 /guest ok=yes/no
map to guest = Bad User 匿名访问
browseable = 可浏览(设置共享是否可游览,如果是no表示隐藏,通过ip+共享名进行访问)
valid users = 有效用户@maomao
writable = yes 可写,还要看目录权限
writable list = maomao,@GROUPNAME,+GROUPNAME
readonly = yes 只读设置
create mask = 0644 客户机创建文件权限
directory mask = 0744 客户机创建目录的权限
valid user = user1,user2,@group1//禁止登录用户,用户用逗号隔开,组用@ //禁止
invalid = //允许访问控制
max connections = 最大连接数目
deadtime = 断掉连接时间(分钟,0为不限制
hosts allow = 允许主机
hosts deny = 拒绝主机
允许优先
案例2
要求:
1、通过samba提供一个公共文件服务器,所有人都可以访问并写入,但是不可以删除和修改他人的文件。
2、技术部需要一个文件服务器,用于存放常用的软件工具,所有人都可以访问,但是只有技术部可以写入
3、每个人都可以进入自己的独立家目录,别人不可以访问。
配置示例:
[root@localhost ~]# cat /etc/samba/smb.conf
[global]
workgroup = workgroup
security = user
[share] 共享名
path = /share 共享路径
public = yes 指定该共享目录是否允许guest账户访问
comment = file 共享目录的描述
writable = yes 该目录路径是否可写
[soft]
path = /soft
public = yes
comment = soft
write list = @jishubu (表示技术部组的人可以写添加技术部组将用户加入组,并将用户改为samba用户)
[homes]
browsable = no
writable = yes
linux客户端访问linux samba 服务器
安装软件包,samba-client
#列出服务器资源
smbclient -L //192.168.171.143 -U xixi
两种与共享文件进行交互的方法:
一、命令行交互
1、
2、查看这个共享目录中有哪些文件
3、双击tab建可以查看有哪些命令供你选择
通过get命令或者put命令分别进行下载和上传
二、挂载交互
#手动挂载使用资源
mount //192.168.171.143/share /share -o username=xixi,password=redhat
#自动挂载
//192.168.142.128/share /pub cifs _netdev,username=xixi,password=redhat 0 0
_netdev:网络设备(请启动完成网络服务,再进行挂载此设备)
cifs: samba使用的文件系统是cifs
mount -a 重新读取fstab中自动挂载的设备!
multiuser机制(提权) 客户端操作
所需软件包:cifs-utils
使用练习讲解提权
在服务器上通过SMB共享目录/devops,并满足以下要求
1、共享名为devops
2、共享目录devops只能被192.168.171.0网段中的客户端使用
3、共享目录devops必须可以被浏览
4、用户xixi必须能以读的方式访问此共享,访问密码是xixi
5、用户maomao必须能以读写的方式访问此共享,访问密码是maomao
此共享永久挂载在192.168.171.144上的/mnt/dev/目录,并使用用户xixi作为认证任何用户可以通过用户maomao来临时获取写的权限
服务端(还是和一个用户一样):
mkdir /devops
Chown maomao /devops
Chmod 755 /devops
vi /etc/samba/smb.conf
smbpasswd -a xixi
smbpasswd -a maomao
systemctl restart smb nmb
客户端(可以提权)
yum install cifs-utils
mkdir /mnt/dev
vi /etc/fstab
//192.168.171.143 /devops /mnt/dev cifs _netdev,multiuser,username=xixi,password=xixi,sec=ntlmssp 0 0
mount -a
su - maomao 先切换身份到maomao
cifscreds add -u maomao 服务器ip地址
注:cifs这个就是提权命令,将权限提升到maomao的水平
umount /mnt/dev
su - xixi
cifscreds add -u xixi 服务器ip地址
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。