暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

原创|NO.A.0008|网络服务|——|SAMAB|本地用户|虚拟用户|挂载映射网络驱动器|图形化web管理界面|

Java BBS 2021-03-20
553

、Samba概述

1、SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务,SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统,打印机及其他资源,如图:

2、为什么要讲SAMBA?

  1. FTP的优缺点:

  • 优点:文件传输,应用层协议,可跨平台

  • 缺点:只能实现文件传输,无法实现文件系统挂载,无法直接修改服务器端文件

  1. Samba的特性:

  • 使用smb/cifs协议,可跨平台,可实现文件系统挂载,可实现服务器端修改文件

3、smb协议和cifs之间的关系

  • 随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标准,因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重命名为CIFS(Common Internet File System)它是程序可以访问远程Internet计算机上的文件并要求此计算机提供服务,客户程序请求远在服务器上额服务器程序为它提供服务,服务器获得请求并返回响应,CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。

二、Samba服务器详解

1、Samba软件相关信息

  1. 协议:SMB/CIFS

  2. 服务:smb    实现资源共享,权限验证,    TCP 139 445

  3. 配置文件(/etc/samba)

  • smb.conf    主配置文件

  • smbusers    别名配置文件

2、登录验证模式(安全级别)

  1. share匿名验证

  2. user本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证)

  3. 拓展:tdbsam:该方式是使用一个数据库文件来验证,数据库文件叫passdb.tdb.可以通过pdbedit -a 向数据库中添加新用户,不过要建立在samba用户必须先是系统用户,也可以理解为我们使用pdbedit -a将系统用户转化为了samba用户,pdbedit命令的参数很多,列出几个主要的。

  • pdbedit -a username:新建samba账户(将系统用户转化为samba用户,并设置密码)

  • pdbedit -x username:删除samba账户

  • pdbedit -L:列出samba用户列表,读取passdb.tdb数据库文件

  1. 别名用户访问(虚拟用户)

——>实验专题<——

//测试机必须要支持samba服务才可以
//Linux中服务端samba服务默认是没有安装
//Linux客户端是不需要安装相关工具,只要执行samba命令即可
//windows下需要开启samba协议:windows——>控制面板——>程序——>关闭和启动windows功能——>SMB 1.0/CIFS文件共享支持:对勾——>确定——>重启操作系统——>END
//1、环境准备:
centos6.x server1:20.20.20.21:samba server
centos6.x server2:20.20.20.22:samba client
windows:20.20.20.240 samba client
//2、部署samba server服务
[root@server21 ~]# yum install -y samba
[root@server21 ~]# service smb start
//3、创建samba用户,使用的是系统用户,但该用户是有samba专属密码
[root@server21 ~]# useradd -s /sbin/nologin zhangsan
[root@server21 ~]# pdbedit -a zhangsan //设置张三账户samba专属密码;不可以登录系统
//4、windows测试:
//windows+R:\\20.20.20.21——>账户名:zhangsan——>密码:空格——>文件共享目录:zhangsan(zhangsan用户的家目录的共享目录)——>END
//上传照片到张三的共享目录并在服务器端张三的家目录下查看到该文件
[root@server21 ~]# ls /home/zhangsan/
001.jpg
//5、windows下samba实现文件系统挂载:
//此电脑——>映射网络驱动器——>驱动器:Z(默认是倒着往前写)——>文件夹:\\20.20.20.21\zhangsan——>确定——>在文件系统管理器下可以查看到挂载的:网络位置:Z盘——>在里面可以直接读写改查——>END

3、常见配置参数解释

//samba主配置文件
[root@server21 ~]# vim /etc/samba/smb.conf
# SELINUX NOTES: //有selinux的配置说明:说明samba是被selinux限制的。需遵循samba的规则。
//[global]用于定义samba服务器的总体特性,其配置对所有共享资源生效
workgroup = WORKGROUP
#设定Samba Server 所要加入的工作组或者域
server string = Samba Server Version %v
#设定Samba Server的注释,可以是任何字符串,也可以不填,宏%v表示显示Samba的版本号。
interfaces - lo eth0 192.168.12.2/24
#设置Samba Server监听那些网卡,可以写网卡名,也可以卸载网卡的IP地址
hosts allow = 127.192.168.1 192.168.10.1
#表示允许连接到Samba Server的客户端,多个参数以空格隔开,可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow刚好相反(二选一)
//例如:
hosts allow=172.17.2. EXCEPT172.17.2.50
// 表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
// 表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
log file = /var/log/samba/log.%m
#设置Samba Server日志文件的存储位置以及日志文件名称,在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。
max log size = 50
#设置Samba Server日志文件的最大容量,单位为kB,0代表不限制
security = user
#设置用户访问Samba Server的验证方式。
passdb backend = tdbsam
load printers = yes/no
#设置是否在启动Samba时就共享打印机
//[homes]用于设置用户宿主目录的共享属性(特殊共享)
[homes]                                              #共享名(特殊共享,泛指每个用户对应的家目录)
comment = Home Directories #共享描述
browseable = no                                      #共享是否可被查看
writable = yes #共享是否可写
;valid users = %S                                    #允许访问该共享的用户
//例如:valid users = bob, @bob (多个用户或者组中间用逗号隔开,如果要加入一个组就用"@组名"表示。)
//[printers]用于设置打印机共享资源的属性(特殊共享,共享打印设备,现在基本不用)
[printers] #共享名
comment = All Printer #共享描述
path = /var/spool/samba #共享路径
browseable =no                                       #共享是否被查看
guesk ok = no #是否可以匿名访问,类似于publib
writable = yes #是否可以打印
[自定义]自定义共享区域
[自定义] #共享名
comment = the share is xbz #共享描述
path = /share/zdy #共享路径
public = yes #是否可以匿名访问,类似于guest ok
browseable = yes #共享是否可被查看
writable = yes #是否可写(同时设置目录的W)
//配置文件检查工具:
//testparm:若显示“Loaded services file OK."信息表示配置文件的语法是正确的
//-v:显示samba所支持的所有选项。
[root@server21 ~]# testparm                         //检查配置文件格式是否正确  
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

4、访问控制:

//1、第一方式:建议使用这种方式放行:写入权限的控制方式(类似于vsftp的限制方式);
//配置文件开启,文件系统严格控制(尽量采用这种)
writable = yes //使用配置文件进行系统开放。想要写入的时候必须第一项修改
setfacl 或 chmod 777                               //使用文件系统进行限制的方式。更推荐使用setfacl操作,是最安全的。777权限非常危险
//2、第二种方式:文件系统开启,配置文件严格控制
chmod 777 /dir //文件系统全部开放
read only = yes //只读
write  list = 用户,@组                             //使用参数来部分放行。设置组来部分限制。

5、访问启动管理

//启动、停止、重启和重新加载Samba服务
service smb start|stop|restart|reload
//开机自动启动samba服务
chkconfig --level 2345 smb on|off
[root@server21 ~]# chkconfig --list smb
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@server21 ~]# chkconfig smb on
[root@server21 ~]# chkconfig --list smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off

6、客户端登录方式

//Linux端:
//  smbclient  -U 用户名 -L //服务器IP                    #查看服务器共享
//  smbclient  -U 用户名 /服务器IP/共享名                  #登录服务器共享
//1、查看服务并设置启动
[root@server21 ~]# netstat -antp //查看samba是否开启
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 1681/smbd
[root@server22 ~]# which smbclient                       //查看命令所在位置
/usr/bin/smbclient                                       //查看命令所针对的软件包
[root@server22 ~]# rpm -qf /usr/bin/smbclient
samba-client-3.6.23-33.el6.x86_64
//2、查看张三及李四账户的信息
[root@server22 ~]# smbclient -U zhangsan -L               //20.20.20.21          //登入张三用户
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]


Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
zhangsan Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]


Server Comment
--------- -------


Workgroup Master
--------- -------
//2、创建并登入李四账户
[root@server21 ~]# useradd lisi
[root@server21 ~]# pdbedit -a lisi
[root@server22 ~]# smbclient -U lisi -L //20.20.20.21
Enter lisi's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]


Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
lisi Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]


Server Comment
--------- -------


Workgroup Master
--------- -------
//homes标签的特殊性,只能看到自己的共享,别人的是看不到的。
//3、登录账户
[root@server22 ~]# smbclient -U lisi                    //20.20.20.21/lisi
Enter lisi's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \>                                            //samba里面的命令是自己定义的,不依赖于系统命令
[root@server22 ~]# smbclient -U zhangsan //20.20.20.21/zhangsan
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \>


//window端
//1、建立连接 \\服务器IP\共享名
//直接在windows+R下输入:\\20.20.20.21 回车会出现你需要登录的账户选择
//2、清理连接:
C:\Users\Administrator>net use * /del               #清空登录缓存
//你有以下的远程连接:
\\20.20.20.21\IPC$
//继续运行会取消连接。
//你想继续此操作吗? (Y/N) [N]: y
//命令成功完成。
//2、重新建立连接
// 直接在windows+R下输入:\\20.20.20.21

三、samba部署与实验

1、部署samba服务

//注:先关闭服务器和客户机上的防火墙和SElinux
//部署流程:
//1、服务端安装samba
[root@server21 ~]# yum -y install samba
//2、确认客户端和相关命令软件包是否安装(默认是安装的)
[root@server22 ~]# rpm -q samba-client
samba-client-3.6.23-33.el6.x86_64
[root@server22 ~]# rpm -q samba-common
samba-common-3.6.23-33.el6.x86_64
//3、创建共享区域
//备份主配置文件
//创建独立的共享区间(仿照模板编写)
//4、启动smb服务并查看默认共享区域
[root@server21 ~]# service smb start
[root@server22 ~]# smbclient -U lisi -L //20.20.20.21

2、本地验证(登录/上传/下载)

[root@server21 ~]# vim /etc/samba/smb.conf 
//1、修改配置文件(添加自定义共享)
[atyanqi] //共享名称
comment = share dir //描述
path = /atyanqi //共享具体目录
public = yes                                         //匿名可以访问吗,可以
writable = yes //
browseable = yes //是否可见
;       write list = +staff                          //是否允许打印,注释掉;分号也是一个常见注释
//2、创建共享目录并给定相应权限
[root@server21 ~]# mkdir /atyanqi
[root@server21 ~]# chmod 777 /atyanqi/                  #最好使用ACL权限
//3、测试配置文件并重启服务
[root@server21 ~]# testparm
[root@server21 ~]# service smb restart
//4、首先,创建linux用户
[root@server21 ~]# useradd -s /sbin/nologin zhangsan
[root@server21 ~]# passwd  zhangsan                   #不需要创建系统密码
//5、转换为samba用户
[root@server21 ~]# pdbedit -a zhangsan
//6、客户端查看共享文件夹并登录测试
smbcient -U zhangsan -L IP地址
smbclient -U zhangsan //IP地址/共享名
[root@server22 ~]# smbclient -U zhangsan -L //20.20.20.21
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]


Sharename Type Comment
--------- ---- -------
atyanqi Disk share dir
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
zhangsan Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
[root@server22 ~]# smbclient -U lisi //20.20.20.21/lisi
Enter lisi's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \> ? //调用帮助列表
//注:由于未设置上传文件的默认权限,指定用户上传的文件只有自己能修改和覆盖。

3、访问控制—通过配置限制

[root@server21 ~]# vim /etc/samba/smb.conf
[atyanqi]
comment = share dir
path = /atyanqi
public = yes
writable = yes
browseable = yes
valid users = zhangsan //仅允许部分用户访问共享局域
[root@server21 ~]# service smb restart
//注:前提条件是指定目录权限给到最大,通过修改配置文件来实现实验结果
//验证:
[root@server22 ~]# smbclient -U lisi //20.20.20.21/atyanqi //李四是被拒绝的。因为李四没有写入到 vaild users
Enter lisi's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
tree connect failed: NT_STATUS_ACCESS_DENIED
[root@server22 ~]# smbclient -U zhangsan //20.20.20.21/atyanqi //张三是可以正常登入的
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \>


//1、部分用户登录samba服务器
//修改/etc/samba/smb.conf中自定义的共享区域
//添加:设置合法用户列表
valid users = 用户,@组(多个逗号分隔)
//2、部分用户对共享区域有写权限
//修改/etc/samba/smb.conf中自定义的共享区域
//添加:开启只读,设置可写列表
[root@server21 ~]# vim /etc/samba/smb.conf
[atyanqi]
comment = share dir
path = /atyanqi
public = yes
writable = yes
browseable = yes
; valid users = zhangsan
read only = yes //开启只读
write list = lisi //允许那个用户写入
[root@server21 ~]# service smb restart
//验证:
[root@server22 ~]# smbclient -U lisi                //20.20.20.21/atyanqi        //李四是可以登入并写入文件的,并且是可以覆盖的。
Enter lisi's password:
smb: \> put anaconda-ks.cfg
putting file anaconda-ks.cfg as \anaconda-ks.cfg (19.7 kb/s) (average 19.7 kb/s)
smb: \> ls
anaconda-ks.cfg A 1112 Thu Feb 4 11:30:59 2021
[root@server22 ~]# smbclient -U zhangsan //20.20.20.21/atyanqi //张三是可以登入的,但不可以写入
Enter zhangsan's password:
smb: \> put anaconda-ks.cfg
NT_STATUS_ACCESS_DENIED opening remote file \anaconda-ks.cfg
//设置上传文件的默认权限
[root@server21 ~]# ll /atyanqi/                    //查看上传上来的文件权限是744,是不合理的,可执行文件
total 4
-rwxr--r-- 1 lisi lisi 1112 Feb 4 11:30 anaconda-ks.cfg
//mask是默认权限
//umask是掩码权限;掩码是022才是644权限。
create mask //文件的默认权限
directory mask //目录的默认权限
[atyanqi]
comment = share dir
path = /atyanqi
public = yes
writable = yes
browseable = yes
; valid users = zhangsan
read only = yes
write list = lisi
create mask = 644                                      //设置上传文件的权限为644
[root@server21 ~]# service smb restart
//验证:
[root@server22 ~]# smbclient -U lisi                   //20.20.20.21/atyanqi
Enter lisi's password:
smb: \> put install.log
.. DR 0 Thu Feb 4 11:13:52 2021
install.log 9615 Thu Feb 4 11:36:26 2021
[root@server21 ~]# service smb restart
Shutting down SMB services: [ OK ]
Starting SMB services: [ OK ]
[root@server21 ~]# ll /atyanqi/
total 16
-rwxr--r-- 1 lisi lisi 1112 Feb  4 11:30 anaconda-ks.cfg  //没有修改文件权限的文件上传后发生变化时744
-rw-r--r-- 1 lisi lisi 9615 Feb  4 11:36 install.log      //设置上传文件的权限为644,说明正确

4、用户别名(虚拟用户)

//1、添加别名(/etc/samba/smbusers)
[root@server21 ~]# vim /etc/samba/smbusers
//添加:
root = administrator admin
nobody = guest pcguest smbguest
zhangsan = zs //设置zhangsan的别名为zs
//2、启用别名(修改注配置文件)
[root@server21 ~]# vim /etc/samba/smb.conf
//添加:
[global]                                                   //最好写在global列表里
workgroup = MYGROUP
server string = Samba Server Version %v
        username map = /etc/samba/smbusers              //设置让smb.conf主配置文件调用别名
[root@server21 ~]# service smb restart
//3、测试:
[root@server22 ~]# smbclient -U zs //20.20.20.21/atyanqi  //使用zhangsan的别名zs登录成功,说明没有问题
Enter zs's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \>
[root@server22 ~]# smbclient -U ls //20.20.20.21/atyanqi //lisi的别名没有设置,所以会登录失败。
Enter ls's password:
session setup failed: NT_STATUS_LOGON_FAILURE

5、映射网络驱动器(挂载)

//Linux下:
//1、临时挂载:
[root@server22 ~]# mount -t cifs -o username=zs,password=空格 //服务器IP/服务器共享/本地挂载目录;默认的文件系统是cifs;-t:指定文件系统,-o:账户名及密码
//2、永久挂载:/etc/fstab
[root@server22 ~]# vim /etc/fstab //永久挂载让李四用户访问atyanqi目录到指定目录下
//20.20.20.21/atyanqi /atyanqi cifs defaults,username=lisi,password=空格 0 0
//服务器IP/服务器共享 /本地挂载目录cifs defaults,username=xxx,password=xxx 0 0
[root@server22 ~]# mount -a //mount -a表示扫描/etc/fstab文件下的未挂载的挂载到指定位置
mount: mount point /atyanqi does not exist //挂载点不会存在
[root@server22 ~]# mkdir /atyanqi
[root@server22 ~]# mount -a
mount: block device //20.20.20.21/atyanqi is write-protected, mounting read-only //正常挂载
[root@server22 ~]# df -h //可以查看到一个新的挂载
//20.20.20.21/atyanqi 18G 2.2G 15G 13% /atyaqni
//windows下:
//我的电脑/计算机/此电脑/这台电脑等右键映射网络驱动器[注意是反斜杠\]——>驱动号:Z——>文件夹:\\20.20.20.21\atyanqi——>END

6、图形化web管理界面

//将samba图形化界面程序包导入服务器samba-swat.tar.gz
[root@server21 ~]# tar -zxvf samba-swat.tar.gz
[root@server21 ~]# cd samba-swat //这些程序包是el6的,只能在centos6.x下使用,centos7.x是不可以使用的。
//1、安装(导入程序包)
[root@server21 samba-swat]# yum install -y *               //安装程序包,下面两个软件包必须安装
samba-swat
xinetd
//2、修改/etc/xinetd.d/swat
[root@server21 ~]# vim /etc/xinetd.d/swat
添加:
only_from = 20.20.20.240 //修改登录来源IP地址
disable = no //disable no是不禁止,disable yes是禁止
//3、重启xinetd服务
[root@server21 ~]# service xinetd restart
[root@server21 ~]# chkconfig --list xinetd
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off //默认开机自启
[root@server21 ~]# netstat -antp //查看901端口是否开启
tcp 0 0 :::901 :::* LISTEN 2050/xinetd
//4、测试
http://20.20.20.21:901/

登录初始状态:用户名:root    密码:空格(默认使用root的账户名及密码)

默认初始页

=================================END==================================

辅助文本

3、常见配置参数解释

//[global]用于定义samba服务器的总体特性,其配置对所有共享资源生效
workgroup = WORKGROUP
#设定Samba Server 所要加入的工作组或者域
server string = Samba Server Version %v
#设定Samba Server的注释,可以是任何字符串,也可以不填,宏%v表示显示Samba的版本号。
interfaces - lo eth0 192.168.12.2/24
#设置Samba Server监听那些网卡,可以写网卡名,也可以卸载网卡的IP地址
hosts allow = 127.192.168.1 192.168.10.1
#表示允许连接到Samba Server的客户端,多个参数以空格隔开,可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow刚好相反(二选一)
//例如:
hosts allow=172.17.2. EXCEPT172.17.2.50
// 表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
// 表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
log file = /var/log/samba/log.%m
#设置Samba Server日志文件的存储位置以及日志文件名称,在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。
max log size = 50
#设置Samba Server日志文件的最大容量,单位为kB,0代表不限制
security = user
#设置用户访问Samba Server的验证方式。
passdb backend = tdbsam
load printers = yes/no
#设置是否在启动Samba时就共享打印机
//[homes]用于设置用户宿主目录的共享属性(特殊共享)
[homes]                                              #共享名(特殊共享,泛指每个用户对应的家目录)
comment = Home Directories #共享描述
browseable = no #共享是否可被查看
writable = yes #共享是否可写
;valid users = %S #允许访问该共享的用户
//例如:valid users = bob, @bob (多个用户或者组中间用逗号隔开,如果要加入一个组就用"@组名"表示。)
//[printers]用于设置打印机共享资源的属性(特殊共享,共享打印设备,现在基本不用)
[printers] #共享名
comment = All Printer #共享描述
path = /var/spool/samba #共享路径
browseable =no #共享是否被查看
guesk ok = no #是否可以匿名访问,类似于publib
writable = yes #是否可以打印
//[自定义]自定义共享区域
[自定义] #共享名
comment = the share is xbz                           #共享描述
path = /share/zdy #共享路径
public = yes #是否可以匿名访问,类似于guest ok
browseable = yes #共享是否可被查看
writable = yes #是否可写(同时设置目录的W)
//配置文件检查工具:
//testparm:若显示“Loaded services file OK."信息表示配置文件的语法是正确的
//-v:显示samba所支持的所有选项。

4、访问控制:

//写入权限的控制方式(类似于vsftp的限制方式);
//配置文件开启,文件系统严格控制(尽量采用这种)
writable = yes
setfacl 或 chmod 777
//文件系统开启,配置文件严格控制
chmod 777 /dir
read only = yes
write list = 用户,@组

5、访问启动管理

//启动、停止、重启和重新加载Samba服务
service smb start|stop|restart|reload
//开机自动启动samba服务
chkconfig --level 2345 smb on|off

6、客户端登录方式

Linux端:
    smbclient   -U 用户名 -L //服务器IP                   #查看服务器共享
    smbclient   -U 用户名 /服务器IP/共享名               #登录服务器共享
window端
\\服务器IP\共享名
net use * /del #清空登录缓存

三、samba部署与实验

1、部署samba服务

//注:先关闭服务器和客户机上的防火墙和SElinux
//部署流程:
//1、服务端安装samba
yum -y install samba
//2、确认客户端和相关命令软件包是否安装(默认是安装的)
rpm -q samba-client
rpm -q samba-common
//3、创建共享区域
//备份主配置文件
//创建独立的共享区间(仿照模板编写)
//4、启动smb服务并查看默认共享区域
service smb start
smbclient -U 用户名 -L smbserverIP

2、5本地验证(登录/上传/下载)

//修改配置文件(添加自定义共享)
[自定义]
comment = the share is xbz
path = /share/zdy
public = yes
browseable = yes
writable = yes
//创建共享目录并给定相应权限
mkdir /share/zdy
chmod 777 /share/zdy #最好使用ACL权限
//测试配置文件并重启服务
testparm
service smb restart
//首先,创建linux用户
useradd -s /sbin/nologin zhangsan
passwd zhangsan #不需要创建系统密码
//转换为samba用户
pdbedit -a zhangsan
//客户端查看共享文件夹并登录测试
smbcient -U zhangsan -L IP地址
smbclient -U zhangsan //IP地址/共享名
//注:由于未设置上传文件的默认权限,指定用户上传的文件只有自己能修改和覆盖。

3、访问控制—通过配置限制

  valid users //仅允许部分用户访问共享局域
//注:前提条件是指定目录权限给到最大,通过修改配置文件来实现实验结果
//1、部分用户登录samba服务器
//修改/etc/samba/smb.conf中自定义的共享区域
//添加:设置合法用户列表
valid users = 用户,@组(多个逗号分隔)
//2、部分用户对共享区域有写权限
//修改/etc/samba/smb.conf中自定义的共享区域
//添加:开启只读,设置可写列表
read only = yes
write list = lisi
//设置上传文件的默认权限
create mask //文件的默认权限
directory mask //目录的默认权限
//修改配置文件自定义的共享区域
//添加:
create mask = 666
directory mask = 777

4、用户别名(虚拟用户)

//1、添加别名(/etc/samba/smbusers)
//添加:
zhangsan = zs
//2、启用别名(修改注配置文件)
vim /etc/samba/smb.conf
//添加:
username map = /etc/samba/smbusers
//3、测试:
smbclient -U 别名 //服务器IP/共享名

5、映射网络驱动器(挂载)

Linux下:
//临时挂载:
mount -t cifs -o username=xxx,password=xxx //服务器IP/服务器共享/本地挂载目录
//永久挂载:/etc/fstab
//服务器IP/服务器共享 /本地挂载目录cifs defaults,username=xxx,password=xxx 0 0


windows下:
//我的电脑、计算机、此电脑、这台电脑等右键映射网络驱动器【注意是反斜杠\】

6、图形化web管理界面

//1、安装(导入程序包)
//使用yum -y install * 安装所欲上传的rpm包
//2、修改/etc/xinetd.d/swat
//添加:
only_from = 登录来源IP
disable = no
//3、重启xinetd服务
service xinetd restart
//4、测试
//浏览器:IP:901 #登录时注意端口号

END





声明:JavaBBS论坛主要用于IT技术专题的交流学习,为开源技术爱好者提供广泛、权威的技术资料。若您在技术专题有更好的想法或者建议,欢迎交流!!!



推荐阅读

Recommended reading

 







JavaBBS



Git











  






https://www.javabbs.cn/git






  JavaBBS大数据






→ 






https://www.javabbs.cn





/dsj





  JavaBBS云存储






→  https://www.javabbs.cn






/ycc







  JavaBBS数据库













  https://www.javabbs.cn






/sjk







  JavaBBS云计算













  https://www.javabbs.cn






/yjs







  JavaBBSIT.Log













https://www.javabbs.cn






/itl






  JavaBBSNginx













  https://www.javabbs.cn






/ngx






  JavaBBSzabbix













https://www.javabbs.cn






/zbx






  JavaBBSJavaSE













https://www.javabbs.cn






/jse







  JavaBBS社区文章













https://www.javabbs.cn






/bwz






  JavaBBS社区资料













https://www.javabbs.cn






/bzl







文章转载自Java BBS,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论