资讯详情

Linux实训项目——第九章:配置与管理Samba服务器

Samba——跨平台网络文件共享系统

概述

Samba百度百科系统 什么是samba Samba——维基百科 是种用来让UNIX微软列操作系统和微软Windows作业系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议连接自由软件 samba是能让你的Unix计算机等MS Windows计算机相互共享资源的软件 CIFS协议文档 。CIFS 通过定义远程文件访问协议,该协议与应用程序在本地磁盘和网络文件服务器上共享数据相兼容,可以在互联网上合作。定义客户端到服务器端的请求和服务器端的响应报告。CIFS数据包格式为标准头部 两个可变长区域。

再次向他强调,在 Unix Like 以上可以分享档案资料 file system 是 NFS,那么在 Windows 上面使用的『网上邻居』使用的档案系统称为 Common Internet File System, CIFS

发展

SAMBA详解

在早期的网络世界中,档案数据主要用于不同主机之间的传输 FTP 送。不过使用 FTP 但是传输档案有一个小问题, 也就是说,您不能直接修改主机上的档案数据!换句话说,你想改变 Linux 当主机上的一个档案被下载到服务器上时,您必须修改它。 因此,该文件将存在于服务器和客户端。这个时候,万一如果有一天修改了某个档案, 但是忘了把数据上传回主机,那么过了一会儿,呵呵,你怎么知道档案是最新的呢? ? 让档案在两个主机之间直接修改 既然有这样的问题,我能直接在客户端的机器上使用吗? server 上述档案, 如果可以直接在客户端进行 Server 存取端档案,那么我就不需要在客户端存储档案数据,也就是说, 我只要有Server 可以存在上述档案资料!有没有这样的档案系统? (File System)! 很高兴我们前面提到过。 Network File System, NFS 就是这样的档案系统之一!我只需要在客户端 Server 提供共享的目录挂载, 然后可以直接在客户端的机器上取用 Server 上面的档案资料,而且, 这个数据就像我客户端上面的数据。 partition 一般,真好用! 除了可以让 Unix Like 机器共享档案 NFS 微软除了服务器 (Microsoft) 操作系统上也有类似的档案系统,即 Common Internet File System, CIFS 这个咚咚!CIFS 最简单的想法是目前常见的『网上邻居』 咯! Windows 该系统的计算机可以通过桌面『网上邻居』分享他人提供的档案数据!真是方便。 不过,NFS 仅能让 Unix 机器沟通, CIFS 只能让 Windows 机器沟通。伤脑筋,有没有让? Windows 与 Unix-Like 这两个不同平台共享档案数据的档案系统呢? ? 逆向工程开发采用封包检测 SMB Server 在 1991 年一个名叫 Andrew Tridgwell 他手里有三台机器,分别跑 DOS 个人计算机,DEC公司的 Digital Unix 系统以及 Sun 的 Unix 系统。在当时, DEC 公司发展了一套叫做 PATHWORKS 该软件可用于共享 DEC 的 Unix 个人电脑 DOS 可惜这两个操作系统的档案数据让 Tridgwell 更麻烦的是,Sun 的 Unix 这个软件无法实现数据共享的目的。 这个时候 Tridgwell 就想说:『咦!既然这两个系统可以相互沟通,这是不合理的 Sun 一定要这么苦,对吧?可不 找出这两个系统的运行原理,然后让它们 Sun 这台机器还能分享档案数据吗?』, 为了解决这样的问题,他哥哥自己写了一个 program 去侦测当 DOS 与 DEC 的 Unix 该系统用于数据共享和传输 通信协议信息,然后捕获这些重要信息, 并根据上述通信协议开发Server Message Block (SMB) 这个档案系统就是这个 SMB 软件就能够让 Unix 与 DOS 互相分享数据! ? 取名 SAMBA 的主因 既然写了软件,想想,总需要注册商标!因此 Tridgwell 就去申请了 SMBServer (Server Message Block 的简写) 可惜这个名字是他写的软件的商标,因为 SMB 这是一个毫无意义的所以没有办法注册。在这种情况下,你能在字典中找到相关的单词作为商标注册吗? 翻了半天,呵呵!这个 SAMBA 刚好含有 SMB , 又是热情有力的拉丁舞的名字,不然就用这个名字当商标吧! 这已经成为我们今天使用的东西 SAMBA 名字来了!

SMB发展史

在安装Samba在系统之前,有必要了解它Samba如何工作。Samba之所以能工作,是因为它模仿它Windows内核的文件和打印共享协议,该协议称之为SMB 协议(Server Message Block )。SMB在Windows它在出现之前就已经存在了。英特尔、微软、IBM、施乐以及3com等公司联合提出。尽管该协议在过去的20年里得到了扩展,但该协议的基本理论仍然相同。 **微软已经将SMB改名为公共因特网文件系统(CIFS,Common Internet File System )。这在一定程度上是因为它想要基于最初的基础NetBIOS的SMB保持一定距离。**最初,NetBIOS这是一个伟大的工具,但它逐渐表明,该工具无法处理连接到计算机的所有计算机数量,或者连接到当前计算机的计算机数量无法显示在因特网上。 Samba也执行了SMB (或者叫做CIFS,如果你愿意的话)一个版本,在很大程度上与大多数版本相匹配Windows版本兼容。有时,微软Samba例如,系统会崩溃,Windows 在2000年的补丁包中,当正常的认证方法发生变化时,就会导致Samba系统崩溃。唯一能让Samba重新工作的方法是通过注册表改变认证方法。虽然有这些小缺陷,虽然这些缺陷总是在大量集成后出现,但无论从Windows连接到Linux还是从Linux连接到Windows 机器,Samba实现文件和打印服务的系统总是非常稳定的。 提示: 本文将以Red Hat 9.0上的Samba系统是讨论的基础。但是不要想太多。因为无论你操作哪个版本Linux,Samba系统本质上是一样的,但在具体的配置细节上可能会有所不同。

原理

SMB抓包分析协议原理 ①?客户端先发送一个SMB negprot请求数据报告,并列出其所持有的一切SMB协议版本。服务器在收到请求信息后响应请求,并列出协议版本的协议版本。如果没有协议版本,请返回0XFFFFH,结束通信。 ②协议确定后,客户端流程向服务器发起一个家庭或共享认证,通过发送SesssetupX实现请求数据报告。客户端将户名、密码或简单密码发送到服务器,然后通过发送服务器发送服务器SesssetupX应答数据报告允许或拒绝此连接。 ③当客户端和服务器完成协商和认证时,它会发送?Tcon或TconX SMB数据报并列出了它想要访问网络资源的名称,然后服务器会发送?TconX响应数据报表?连接是否被接受或拒绝。 ④连接到相应的资源后,SMB客户端可以通过open SMB打开一个,通过read SMB读取,通过write SMB写,通过close SMB关闭?件。

特点

SAMBA详解——鸟哥 1.直接用软件编修 WWW 主机上的网页数据 我相信很多人用个人电脑制作网页,然后使用类似的网页 FTP 等服务将网页上传到 WWW 主机,但是有一个麻烦,那就是同时在客户端和客户端 WWW 主机上有一个网页数据,经常忘记哪一个是最新的, 最麻烦的是,有时候下载下来的档案已经经过好多修改了,却在下次的 FTP 作业,不小心又下载了旧数据,结果把修改过的数据覆盖到过去~天啊!再重写一遍…真是讨厌!再重写一遍…真是讨厌! 假如你有安装 SAMBA 如果设置服务器,通过『网芳』直接在线远程服务器提供的目录, 这样,您就可以直接在您的个人电脑上修改主机的档案数据,只有一个正确的数据! 这有点像『在线编修』一修改完成,在 Internet 以上可立即检查,非常方便! 2.制作可直接联机的档案服务器 在鸟哥实验室,由于计算机数量少,研究生经常使用不同的计算机 (因为每个人都要抢没人用的电脑!) ,此外,研究生经常拿自己的 NoteBook 因此,一些团队的数据分散在各种计算机中,使用起来相当不方便。 这时,鸟哥就用了 SAMBA 共享硬盘空间,因为用户必须登录 SAMBA 服务器主机需要输入用户数据 (账号和密码),不同的登录者会获得不同的目录资源,因此他们可以避免在公共计算机上窥视自己的数据, 此外,可以登录不同的公共计算机 SAMBA 主机,数据的使用真的很棒! 3.打印机服务器 SAMBA 除了共享文件系统,打印机也可以共享。鸟哥研究室的几台电脑直接使用 Linux 共享打印机打印报告。您会说『啊 Windows 也可以做到!没什么了不起的!』是啊。 但是因为 Linux 作为服务器主机,鸟哥认为 Linux 毕竟还是比较稳定的,可以 24 一年四季都在努力工作。另外,因为目前已经过去了『网上邻居』攻击局域网络 Windows 操作系统的计算机病毒太多,无法预防, Linux 对于这样攻击并没有很大的影响 (因为常见的攻击手法均针对 Windows 而来~),所以也比较安全一些说~ SAMBA 的应用挺广泛的,尤其对于局域网络内的计算机来说,更是一项不可多得的好用的服务器, 虽然或许你会说,SAMBA 的功能不过是模仿 Windows 的网芳以及 AD 相关的软件, 那我直接使用 Windows 不就 OK 了?可惜的是, Windows XP 对于网芳的联机限制依版本而有所不同, 以企业常见的专业版 (Professional) 来说,他仅能提供最多同时十个联机到网芳的联机能力,这…不太够用吧! 所以啰,SAMBA 稳定、可靠又没有限制联机数 Samba服务简介与常用配置项 Linux系统下samba的作用,Samba介绍及功能: | Linux系统运维联盟 特点:可以实现跨平台文件传输,并支持在线修改 作用:

  1. 提供windows风格的文件和打印机共享,分享档案与打印机服务;
  2. 可以进行 Windows 网络上的主机名解析 (NetBIOS name),在windows网络中解析NetBios的名字
  3. 提供SMB客户端,linux用户可以利用smbclient利用类似于ftp的形式访问windows资源.,可以提供用户登入 SAMBA 主机时的身份认证
  4. 提供命令工具,利用该工具可以有限制地支持windows的某些管理功能.

应用

[samba] 启动SMB服务里出来一个NMB服务是什么? Samba分为SMB和NMB两部分

SMB协议 SMB(Server Message Block,服务信息块)协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。

NMB是SMB守护进程之一,于NetBIOS有关

NetBIOS Message Block (NMB ) 可以通过主机名代替IP地址来访问局域网里的主机。

smb是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;如果不打开nmb服务器的话,只能通过IP来访问 nmb是解析用的,就是把这台Linux机器所共享的工作组及在此工作组下的netbios name解析出来

前者为了共享,后者为了主机名与IP的映射 samba (软件)——百度百科 ①使用 RPM来安装 使用 RPM 来安装真是一点都不难。不过,要注意安装的套件名称,因为不同的distribution 对于 RPM 档案的命名都不太一样!举例, Red Hat 9 对于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等等。

不过,在 Mandrake 9.1 当中,则将 samba 这个套件又分为 samba-server与 samba-doc 两个套件,所以在 MDK 9.1 则有四个套件需要安装:samba-server, samba-doc, samba-common, samba-client 。

前置

端口

SMB可以以不同方式运行在会话层或者更低的网络层之上:

直接运行在 TCP 上 port 445; 通过使用 NetBIOS API, 它可以运行在几种不同的 transports: 基于一些传统协议,例如 NBF (incorrectly referred to as NetBEUI[原创研究?]). SMB的 “进程间通信” (IPC) 系统提供 命名管道s 机制,它使得程序员可以方便的实现继承认证(客户端第一次连接SMB服务获取认证信息后)。

一些服务的操作基于命名管道机制, 例如那些 Microsoft 内部实现的基于SMB的 DCE/RPC, 被称为基于SMB的 MSRPC, 同时允许 MSRPC 客户端程序 处理认证过程(借助SMB服务提供的认证服务实现), 但是只在MSRPC客户端程序上下文中有效。

SMB 签名: Windows NT 4.0 Service Pack 3 及后续版本提供了基于数字签名的SMB连接机制。常用的官方术语叫做“SMB 签名”。其他被同时被使用的官方术语有

Server Message Block version 2 (SMB2) 旨在通过将SMB signals合并为一个数据包来减轻这个性能限制

SMB 支持 机会 — 一种特殊的锁机制 — 来提升性能。

SMB 服务是 Microsoft’s Distributed File System 实现的基础.

实训目的

1、掌握LINUX与Windows的资源共享和互访方法 2、掌握SAMBA服务器的安装和配置方法 3、掌握使用SAMBA共享用户认证和文件系统 4、掌握UNICODE字符集和域名映射的方法 5、掌握满足CIFS协议的UNIX共享的方法

项目设计

某公司有system、develop、product和test等4个小组,个人办公机操作系统为Windows,少数开发人员采用Linux操作系统,服务器操作系统为centos 7,需要设计一套建立再cenots 7之上的安全文件共享方案。每个用户都有自己的网络磁盘,develop组和test组有共用的网络硬盘,所有用户(包括匿名用户)有一个只读共享资料库;所有用户(包括匿名用户)要有一个存放临时文件的文件夹

要求如下: 1、system组具有管理所有SAMBA空间的权限 2、各部门的私有空间:各小组拥有自己的空间,除了小组成员及system组有权限以外,其他用户不可访问(包括列表、读和写) 3、对于资料库Library,所有用户(包括匿名用户)都可读不可写 4、develop组与test组的共享空间,该两组之外的用户不能访问 5、公共空间temp:让所有用户可以读取、写入、删除

一、Samba服务权限配置

1、在服务器端安装Samba服务(基于文件权限,非Samba权限)

[root@centos-a1 ~]# yum install samba-* -y
[root@centos-a1 ~]# rpm -qc samba
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
[root@centos-a1 ~]# rpm -qc samba-common
/etc/logrotate.d/samba
/etc/samba/lmhosts
/etc/samba/smb.conf
/etc/sysconfig/samb

Linux文件共享之samba /etc/openldap/schema/samba.schema samba的openldap认证配置文件 /etc/pam.d/samba samba的pam认证文件 /etc/logrotate.d/samba 日志轮滚策略文件 /etc/samba/lmhosts 本地主机配置文件 /etc/samba/smb.conf samba的主配置文件,用于实现samba的环境设置和自定义共享目录 /etc/sysconfig/samba samba的系统配置文件 LinuxSamba服务主配文件smb.conf中文详解

[root@centos-a1 ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]		
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
[root@centos-a1 ~]# 

[global] samba服务器的全局设置,对整个服务器有效。 workgroup 语法:workgtoup = <⼯作组群>; 预设:workgroup = MYGROUP 说明:设定 Samba Server 的⼯作组 例:workgroup = workgroup 和WIN2000S设为⼀个组,可在⽹上邻居可中看到共享。 server string 语法:server string = <说明>; 预设:sarver string = Samba Server 说明:设定 Samba Server 的注释 其他:⽀持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端⽤户名 例:server string = this is a Samba Server 设定出现在Windows⽹上邻居的 Samba Server 注释为 this is a Samba Server hosts allow 语法:hosts aoolw = <IP地址>; … 预设:; host allow = 192.168.1. 192.168.2. 127. 说明:限制允许连接到 Samba Server 的机器,多个参数以空格隔开。表⽰⽅法可以为完整的IP地址,如 192.168.0.1 ⽹段,如 192.168.0. 例:hosts allow = 192.168.1. 192.168.0.1 表⽰允许 192.168.1 ⽹段的机器⽹址为 192.168.0.1 的机器连接到⾃⼰的 samba server printcap name 语法:printcap name = <打印机配置⽂件>; 预设:printcap name = /etc/printcap 说明:设定 samba srever 打印机的配置⽂件 例:printcap name = /etc/printcap 设定 samba srever 参考 /etc/printcap 档的打印机设定。 load printers 语法:load printers = <yes/no>; 预设:load printers = yes 说明:是否在开启 samba server 时即共享打印机。 printing 语法:printing = <打印机类型>; 预设:printing = lprng 说明:设定 samba server 打印机所使⽤的类型,为⽬前所⽀持的类型。 guest account 语法:guert account = <帐户名称>; 预设:guert account = pcguest 说明:设定访问 samba server 的来宾帐户(即访问时不⽤输⼊⽤户名和密码的帐户),若设为pcguest的话则为默认为"nobody"⽤户。 例:guert account = andy 设定设定访问 samba server 的来宾帐户以andy⽤户登陆,则此登陆帐户享有andy⽤户的所有权限。 log file 语法:log file = <⽇志⽂件>; 预设:log file = /var/log/samba/%m.log 说明:设定 samba server ⽇志⽂件的储存位置和⽂件名(%m代表客户端主机名) max log size 语法:max log size = <??KB>; 预设:max log size = 0 说明:设定⽇⼦⽂件的最⼤容量,单位KB 这⾥的预设值0代表不做限制。 security 语法:security = <等级>; 预设:security = user 说明:设定访问 samba server 的安全级别共有四种: share—不需要提供⽤户名和密码。 user----需要提供⽤户名和密码,⽽且⾝份验证由 samba server 负责。 server–需要提供⽤户名和密码,可指定其他机器(winNT/2000/XP)或另⼀台 samba server作⾝份验证。 domain–需要提供⽤户名和密码,指定winNT/2000/XP域服务器作⾝份验证。 password server 语法:password server = <IP地址/主机名>; 预设:password server = ; 说明:指定某台服务器(包括windows 和 linux)的密码,作为⽤户登⼊时验证的密码。 其他:此项需配合 security = server时,才可设定本参数。 password level 语法:password level = <位数>; username level = <位数>; 预设:password level = 8 username level username level = 8 说明:设定⽤户名和密码的位数,预设为8位字符。 encrypt passwords 语法:encrypt passwords = <yes/no>; 预设:encrypt passwords = yse 说明:设定是否对samba的密码加密。 smb passwd file 语法:smb passwd file = <密码⽂件>; 预设:smb passwd file = /etc/samba/smbpasswd 说明:设定samba的密码⽂件。 local master 语法:local master = <yes/no>; 预设:local master = no 说明:设定 samba server 是否要担当LMB⾓⾊(LMB负责收集本地⽹络的Browse List资源),通常⽆特殊原因设为no os level 语法:os level = <数字>; 预设:os level = 33 说明:设定 samba server的os level. os level从 0 到 255 . winNT的os level为33, win95/98的os level 是 1 .若要拿samba server 当LMB或DMB则它的os level⾄少要⼤于NT的33以上。 domain master 语法:domain master = <yes/no>; 预设:domain master = yes 说明:设定 samba server 是否要担当DMB⾓⾊(DMB会负责收集其他⼦⽹的Browse List资源),通常⽆特殊原因设为no preferred master 语法:preferred master = <yes/no>; 预设:preferred master = yes 说明:设定 samba server 是否要担当PDC⾓⾊(PDC会负责追踪⽹络帐户进⾏的⼀切变更),通常⽆特殊原因设为no,(同⼀⽹段内不可有两个PDC,他们会每5分钟抢主控权⼀次) wins support 语法:wins support = <yes/no>; 预设:wins support = yes 说明:设定samba server 是否想⽹络提供WINS服务,通常⽆特殊原因设为no。除⾮所处⽹络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes,其他 wins support 和 wins server 只能选择⼀个 wins server 语法:wins server = <IP地址>; 预设:wins server = w.x.y.z 说明:设定samba server 是否要使⽤别台主机提供的WINS服务,通常⽆特殊原因设为no。除⾮所处⽹络上有⼀台主机提供WINS服务才要设yes,其他 wins support 和 wins server 例:wins server = 192.168.0.1 表⽰samba server要使⽤192.168.0.1提供的WINS服务 #============================== Share Definitions ============================= [homes] comment = Home Directories browseable = no writable = yes valid users = %S 使⽤者本⾝的"家"⽬录,当使⽤者以samba使⽤者⾝份登⼊samba server 后,samba server 底下会看到⾃⼰的家⽬录,⽬录名称是使⽤者⾃⼰的帐号。 [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes 设置了samba服务器中打印共享资源的属性,samba服务器除了可以提供⽂件共享,还可以提供打印共享。 [分享的资源名称] <指令1>; = (参数) <指令2>; = (参数) 要提供分享资源时,须先把欲分享的资源以 [ ] 符号括住,底下通常会带指令和参数来表⽰此资源的设定和存取权限等,详情如下: comment---------注释说明 path------------分享资源的完整路径名称,除了路径要正确外,⽬录的权限也要设对 browseable------是yes/否no在浏览资源中显⽰共享⽬录,若为否则必须指定共享路径才能存取 printable-------是yes/否no允许打印 hide dot ftles–是yes/否no隐藏隐藏⽂件 public----------是yes/否no公开共享,若为否则进⾏⾝份验证(只有当security = share 时此项才起作⽤) guest ok--------是yes/否no公开共享,若为否则进⾏⾝份验证(只有当security = share 时此项才起作⽤) read only-------是yes/否no以只读⽅式共享当与writable发⽣冲突时也writable为准 writable--------是yes/否no不以只读⽅式共享当与read only发⽣冲突时,⽆视read only vaild users-----设定只有此名单内的⽤户才能访问共享资源(拒绝优先)(⽤户名/@组名) invalid users—设定只有此名单内的⽤户不能访问共享资源(拒绝优先)(⽤户名/@组名) read list-------设定此名单内的成员为只读(⽤户名/@组名) write list------若设定为只读时,则只有此设定的名单内的成员才可作写⼊动作(⽤户名/@组名) create mask-----建⽴⽂件时所给的权限 directory mask–建⽴⽬录时所给的权限 force group-----指定存取资源时须以此设定的群组使⽤者进⼊才能存取(⽤户名/@组名) force user------指定存取资源时须以此设定的使⽤者进⼊才能存取(⽤户名/@组名) allow hosts-----设定只有此⽹段/IP的⽤户才能访问共享资源 allwo hosts = ⽹段 except IP deny hosts------设定只有此⽹段/IP的⽤户不能访问共享资源 allow hosts=本⽹段指定IP指定IP deny hosts=指定IP本⽹段指定

2、创建system,develop,product,test组,为每组新增用户

[root@centos-a1 ~]# groupadd system
[root@centos-a1 ~]# groupadd develop
[root@centos-a1 ~]# groupadd product
[root@centos-a1 ~]# groupadd test
[root@centos-a1 ~]# useradd system1 -g system
[root@centos-a1 ~]# useradd develop1 -g develop
[root@centos-a1 ~]# useradd product1 -g product
[root@centos-a1 ~]# useradd test1 -g test

3、创建/share目录,并为该目录及子目录设置system的ACL权限

[root@centos-a1 /]# setfacl -m g:system:rwx /share/
[root@centos-a1 /]# setfacl -m d:g:system:rwx /share/

setfacl命令的基本用法 在这里插入图片描述

4、在/share目录下,创建system,develop,product,test,develop_test,library,temp目录,检查子目录的ACL权限继承

[root@centos-a1 share]# mkdir system
[root@centos-a1 share]# mkdir develop
[root@centos-a1 share]# mkdir prodcut
[root@centos-a1 share]# mkdir test develop_test library temp
[root@centos-a1 share]# ll
total 0
drwxrwxr-x+ 2 root root 6 Jun 26 19:25 develop
drwxrwxr-x+ 2 root root 6 Jun 26 19:26 develop_test
drwxrwxr-x+ 2 root root 6 Jun 26 19:26 library
drwxrwxr-x+ 2 root root 6 Jun 26 19:25 prodcut
drwxrwxr-x+ 2 root root 6 Jun 26 19:25 system
drwxrwxr-x+ 2 root root 6 Jun 26 19:26 temp
drwxrwxr-x+ 2 root root 6 Jun 26 19:26 test
[root@centos-a1 share]# getfacl system
# file: system
# owner: root
# group: root
user::rwx
group::r-x
group:system:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:system:rwx
default:mask::rwx
default:other::r-x

5、设置4个组别对应目录的所有者为组内成员,所属组为该组自己

[root@centos-a1 share]# chown develop1:develop develop
[root@centos-a1 share]# chown product1:product prodcut
[root@centos-a1 share]# chown system1:system system
[root@centos-a1 share]# chown test1:test test
[root@centos-a1 share]# ll
total 0
drwxrwxr-x+ 2 develop1 develop 6 Jun 26 19:25 develop
drwxrwxr-x+ 2 root     root    6 Jun 26 19:26 develop_test
drwxrwxr-x+ 2 root     root    6 Jun 26 19:26 library
drwxrwxr-x+ 2 product1 product 6 Jun 26 19:25 prodcut
drwxrwxr-x+ 2 system1  system  6 Jun 26 19:25 system
drwxrwxr-x+ 2 root     root    6 Jun 26 19:26 temp
drwxrwxr-x+ 2 test1    test    6 Jun 26 19:26 test

6、设置/share目录下所有目录权限为其他用户不可读写(770)

[root@centos-a1 /]# chmod 770 share/*
[root@centos-a1 /]# cd share/
[root@centos-a1 share]# ll
total 0
drwxrwx---+ 2 develop1 develop 6 Jun 26 19:25 develop
drwxrwx---+ 2 root     root    6 Jun 26 19:26 develop_test
drwxrwx---+ 2 root     root    6 Jun 26 19:26 library
drwxrwx---+ 2 product1 product 6 Jun 26 19:25 prodcut
drwxrwx---+ 2 system1  system  6 Jun 26 19:25 system
drwxrwx---+ 2 root     root    6 Jun 26 19:26 temp
drwxrwx---+ 2 test1    test    6 Jun 26 19:26 test

7、设置/temp目录权限为所有人均可读写(777)

[root@centos-a1 share]# chmod 777 temp
[root@centos-a1 share]# ll
total 0
drwxrwx---+ 2 develop1 develop 6 Jun 26 19:25 develop
drwxrwx---+ 2 root     root    6 Jun 26 19:26 develop_test
drwxrwx---+ 2 root     root    6 Jun 26 19:26 library
drwxrwx---+ 2 product1 product 6 Jun 26 19:25 prodcut
drwxrwx---+ 2 system1  system  6 Jun 26 19:25 system
drwxrwxrwx+ 2 root     root    6 Jun 26 19:26 temp
drwxrwx---+ 2 test1    test    6 Jun 26 19:26 test

8、设置/library目录权限为其他用户可读不可写(775)

[root@centos-a1 share]# chmod 775 library/
[root@centos-a1 share]# ll
total 0
drwxrwx---+ 2 develop1 develop 6 Jun 26 19:25 develop
drwxrwx---+ 2 root     root    6 Jun 26 19:26 develop_test
drwxrwxr-x+ 2 root     root    6 Jun 26 19:26 library
drwxrwx---+ 2 product1 product 6 Jun 26 19:25 prodcut
drwxrwx---+ 2 system1  system  6 Jun 26 19:25 system
drwxrwxrwx+ 2 root     root    6 Jun 26 19:26 temp
drwxrwx---+ 2 test1    test    6 Jun 26 19:26 test

9、设置追加develop组及test组对共有目录的可读写的ACL权限

[root@centos-a1 share]# setfacl -m g:develop:rwx develop_test/
[root@centos-a1 share]# setfacl -m g:test:rwx develop_test/
[root@centos-a1 share]# getfacl develop_test/
# file: develop_test/
# owner: root
# group: root
user::rwx
group::r-x
group:system:rwx
group:develop:rwx
group:test:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:system:rwx
default:mask::rwx
default:other::r-x

10、配置Samba服务器smb.conf文件,屏蔽个人目录环境内容,增设共享目录环境内容

Linux Samba服务主配文件smb.conf中文详解【转】 SAMBA配置文件常用参数详解


11、添加Samba用户(各组用户),并设置该用户的Samba密码

Linux常用命令—smbpasswd命令 语法 smbpasswd(选项)(参数) 选项 -a:向smbpasswd文件中添加用户; -c:指定samba的配置文件; -x:从smbpasswd文件中删除用户; -d:在smbpasswd文件中禁用指定的用户; -e:在smbpasswd文件中激活指定的用户; -n:将指定的用户的密码置空。 参数 用户名:指定要修改SMB密码的用户。

[root@centos-a1 share]# smbpasswd -a develop1
New SMB password:
Retype new SMB password:
Added user develop1.
[root@centos-a1 share]# smbpasswd -a system1
New SMB password:
Retype new SMB password:
Added user system1.
[root@centos-a1 share]# smbpasswd -a test1
New SMB password:
Retype new SMB password:
Added user test1.
[root@centos-a1 share]# smbpasswd -a prodcut1
New SMB password:
Retype new SMB password:
Failed to add entry for user prodcut1.

二、Samba服务应用配置

1、启动smb及nmb服务,并设置这两个服务每次开机自动启动

[root@centos-a1 share]# rpm -ql samba | grep service
/usr/lib/systemd/system/nmb.service
/usr/lib/systemd/system/smb.service
[root@centos-a1 share]# systemctl start nmb
[root@centos-a1 share]# systemctl start smb
[root@centos-a1 share]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@centos-a1 share]# systemctl enable nmb
Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service.
[root@centos-a1 share]# netstat -lnp | grep smb
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      60727/smbd          
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      60727/smbd          
tcp6       0      0 :::139                  :::*                    LISTEN      60727/smbd          
tcp6       0      0 :::445                  :::*                    LISTEN      60727/smbd          
[root@centos-a1 share]# netstat -lnp | grep nmb
udp        0      0 192.168.111.255:137     0.0.0.0:*                           60711/nmbd          
udp        0      0 192.168.111.21:137      0.0.0.0:*                           60711/nmbd          
udp        0      0 192.168.122.255:137     0.0.0.0:*                           60711/nmbd          
udp        0      0 192.168.122.1:137       0.0.0.0:*                           60711/nmbd          
udp        0      0 0.0.0.0:137             0.0.0.0:*                           60711/nmbd          
udp        0      0 192.168.111.255:138     0.0.0.0:*                           60711/nmbd          
udp        0      0 192.168.111.21:138      0.0.0.0:*                           60711/nmbd          
udp        0      0 192.168.122.255:138     0.0.0.0:*                           60711/nmbd          
udp        0      0 192.168.122.1:138       0.0.0.0:*                           60711/nmbd          
udp        0      0 0.0.0.0:138             0.0.0.0:*                           60711/nmbd          
unix  2      [ ACC ]     STREAM     LISTENING     143931   60711/nmbd           /run/samba/nmbd/unexpected
[root@centos-a1 share]# netstat -lnp | grep samba
unix  2      [ ACC ]     STREAM     LISTENING     143931   60711/nmbd           /run/samba/nmbd/unexpected

2、在Windows下访问服务器的共享资源,以system1登陆测试

不注释掉[home]选项,则登入会出现用户名目录

3、以develop1登陆,测试用户使用权限(切换账号要清空缓存)

C:\Users\lenovo>net use
会记录新的网络连接。


状态       本地        远程                      网络

-------------------------------------------------------------------------------
OK                     \\192.168.111.21\IPC$     Microsoft Windows Network
命令成功完成。


C:\Users\lenovo>net use \\192.168.111.21\IPC$ /delete
\\192.168.111.21\IPC$ 已经删除。


C:\Users\lenovo>net use
会记录新的网络连接。

列表是空的。

cmdnet命令详解 Net Use   作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。   命令格式:Net use [devicename | ] [\computername\sharename[\volume]] [password|]][/user:[domainname]username][[/delete]| [/persistent:{yes | no}]]   有关参数说明:   ·键入不带参数的Net use列出网络连接   ·devicename指定要连接到的资源名称或要断开的设备名称   ·\computername\sharename服务器及共享资源的名称   ·password访问共享资源的密码   ·*提示键入密码   ·/user指定进行连接的另外一个用户   ·domainname指定另一个域   ·username指定登录的用户名   ·/home将用户连接到其宿主目录   ·/delete取消指定网络连接   ·/persistent控制永久网络连接的使用。   例如:Net use f: \GHQ\TEMP 将\GHQ\TEMP目录建立为F盘      Net use f: \GHQ\TEMP /delete 断开连接。

4、在Linux下访问服务器的共享资源,安装Samba客户端

[root@centos7-a3 ~]# yum install samba-client -y

Linux shell smbclient 命令可存取 SMB/CIFS 服务器的用户端程序。 SMB 与 CIFS 为服务器通信协议,常用于Windows95/98/NT等系统。 smbclient(samba client)可让 Linux 系统存取 Windows 系统所分享的资源。

smbclient 命令语法格式如下 smbclient [网络资源][密码][-EhLN][-B<IP地址>][-d<排错层级>][-i<范围>][-I<IP地址>][-l<记录文件>][-M<NetBIOS名称>][-n<NetBIOS名称>][-O<连接槽选项>][-p<TCP连接端口>][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T<tar选项>][-U<用户名称>][-W<工作群组>] -L 显示服务器端所分享出来的所有资源。

[root@centos7-a3 ~]# smbclient -L \\192.168.111.21
Enter SAMBA\root's password: 
Anonymous login successful

        Sharename       Type      Comment
        ---------       ----      -------
        share           Disk      share
        print$          Disk      Printer Drivers
        IPC$            IPC       IPC Service (Samba 4.10.16)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

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

        Workgroup            Master
        ---------            -------
        SAMBA                CENTOS-A1
        WORKGROUP            LAPTOP-3LBTDA4I

5、查看product1在服务器上的共享资源抛出,并利用该用户账号登陆服务器,查看共享资源

-U<用户名称>

[root@centos7-a3 ~]# smbclient -L \\192.168.111.21 -U product1
Enter SAMBA\product1's password: 

        Sharename       Type      Comment
        ---------       ----      -------
        share           Disk      share
        print$          Disk      Printer Drivers
        IPC$            IPC       IPC Service (Samba 4.10.16)
        product1        Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.

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

        Workgroup            Master
        ---------            -------
        SAMBA                CENTOS-A1
        WORKGROUP            LAPTOP-3LBTDA4I

[网络资源] [网络资源]的格式为//服务器名称/资源分享名称。

[root@centos7-a3 ~]# smbclient //192.168.111.21/share -U product1
Enter SAMBA\product1's password: 
Try "help" to get a list of possible commands.
smb: \> 

6、在Samba模式下测试使用ls,cd,mkdir,rmdir,more,get,put等命令,与shell命令进行区别对比

【转】Samba配置文件详解 smb:> 用户在该提示符下输入各种命令。其命令和 ftp 相似,如 cd、lcd、get、mget、put、mput 等,其他比较常用的命令如下所示:

  1. ?[comand] 显示有关command的帮助信息,若无command参数,则列出所有可能的命令。
  2. ![shell command] 在本地执行shell命令,如果没有给出shell command,则在本地运行一个shell。用户可以在该shell中执行各种命令,用exit回到smbclient。
  3. lowercase 关闭或者打开文件名小写转换。如果打开,smbclient 会自动将 get 和 mget 命令取回的文件以相应的小写文件名命名。
  4. print 在远程服务器上打印文件 filename。
  5. queue 显示打印队列。
  6. quit 或者 exit 退出 smbclient。 smbclient 的 mget 和 mput 命令可以使用通配符“*”和“?”,它们还可以工作在递归模式下。当工作在递归模式时,它们将处理当前目录以及所有由 mask 命令指定的子目录。 用 recurse 命令打开或关闭递归模式。 mask 命令指定一个含通配符的模式,当 mget 和 mput 工作在递归模式时,它们将只处理能匹配该模式的目录;如果不工作在递归模式,则忽略该模式。 mask 命令的使用方法是: mask expr 是含通配符的模式。smbclient 还可以发送 WinPopup 消息,方法是: smbclient -M NetBIOS_name NetBIOS_name 是目标计算机的 NetBIOS 名。连接建立后,键入要发送的消息,按Ctrl-d 组合键结束。 Smbclient 的工作模式和 ftp 还有一点相像的地方:当我们要处理绝大多数的文件(如执行一个在远端的文件)时必须先下载到本地系统上,然后才能执行相应的操作。 这种操作方法自有它的好处,如比较节省网络资源,但也会造成文件的重复存取。 smbclient 命令则可以直接利用远端的文件资源而不用先下载。

7、确认product1在共享资源上的权限,查看是否符合项目规划

[root@centos7-a3 ~]# smbclient //192.168.111.21/share -U product1
Enter SAMBA\product1's password: 
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Sun Jun 26 19:26:12 2022
  ..                                  D        0  Sun Jun 26 18:43:49 2022
  system                              D        0  Sun Jun 26 21:18:28 2022
  develop                             D        0  Sun Jun 26 21:21:30 2022
  prodcut                             D        0  Sun Jun 26 21:18:44 2022
  test                                D        0  Sun Jun 26 21:18:52 2022
  develop_test                        D        0  Sun Jun 26 21:21:35 2022
  library                             D        0  Sun Jun 26 21:18:43 2022
  temp                                D        0  Sun Jun 26 21:18:50 2022

                10475520 blocks of size 1024. 6901108 blocks available
smb: \> cd
Current directory is \
smb: \> cd develop
smb: \develop\> ls
NT_STATUS_ACCESS_DENIED listing \develop\*
smb: \develop\> cd

标签: nmb悬臂梁传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台