当前位置:   article > 正文

samba服务器的搭建,linux和windows之间的文件系统共享,多用户提权multiuser_samba 多台终端一个用户

samba 多台终端一个用户

SMB(Server Message block)协议是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。

 

Samba共享的是文件系统!共享之后可以像操作自己的主机一样操作远端电脑!

Samba服务是SMB的一个开源实现,而smb的一些主要功能如下:

    • 通过SMB协议进行文件共享
    • 通过SMB协议进行打印共享(我们可以通过在linux上通过smb配置打印服务器,为window提供打印服务)
    • 加入一个windows2000/2003/2008域环境
    • 通过windows域环境进行认证操作。

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服务的使用过程

  1. 写sam.conf中的配置文件
  2. 重启服务 systemctl restart smb nmb
  3. Net use * /del
  4. 进入windows设备管理器通过“\\+samba服务器ip” 进入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地址

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/184161
推荐阅读
相关标签
  

闽ICP备14008679号