samba服务、安装-smbpasswd工具、pdbedit工具、testparm工具

在Windows构建的网络生态里,各主机间的文件及打印资源共享,主要依赖微软专有的SMB/CIFS网络协议来达成。SMB(即Server Message Block,服务消息块)与CIFS(全称Common Internet File System,通用互联网文件系统),作为微软自研的私有协议,它们在促进系统间高效数据交换方面扮演着关键角色。

换言之,在基于Windows的网络体系中,主机间的文件和打印机资源分享,是通过微软特制的SMB/CIFS网络协议来实现的。SMB协议(服务消息块)与CIFS协议(通用互联网文件系统)均为微软的私有技术,它们在确保不同主机间顺畅的信息流通中发挥着核心作用。

在Samba项目诞生前,实现Linux/UNIX系统与Windows系统的直接通信颇具挑战。

Samba作为开源界备受推崇的项目之一,其核心贡献在于于Linux/UNIX环境中成功复现了微软的SMB/CIFS网络协议。这一壮举极大地简化了跨平台文件共享的流程。对于那些采用Windows、Linux/UNIX混合架构的企业而言,Samba的引入无异于一场及时雨,它巧妙地消除了不同操作系统间文件访问的障碍,促进了多平台环境下的高效协作。

换句话说,在Samba问世之前,Linux/UNIX系统与Windows系统间的直接沟通存在较大难度。而Samba通过在非Windows系统上实现SMB/CIFS协议,使得跨平台文件共享变得轻而易举。对于运行着Windows和Linux/UNIX混合环境的企业来说,Samba的使用能够有效解决文件互通的问题,大大提升了多系统共存场景下的工作便利性。

Samba主要由以下几个部分组成:

  1. smbd:处理所有SMB/CIFS网络连接,它监听TCP端口139和445,接收并响应来自客户端的请求。

(负责为客户 机提供服务器中共享资源(目录和文件等)的访问。)

  1. nmbd:处理NetBIOS名称解析,它监听UDP端口137和138。

(负责提供基于NetBIOS协议的主机名称解析 以便为Windows 网络中的主机提供查询服务。)

  1. winbindd:提供额外的功能,如用户和组管理,以及将NTLM或Kerberos身份验证转发到远程系统。

安装samba服务

对于Debian、Ubuntu和类似的基于APT的系统:

apt update
apt install samba samba-common-bin

对于RHEL、CentOS、Fedora和类似的基于YUM或DNF的系统:

sudo yum install samba samba-client samba-common

或者,在较新的系统上使用DNF:

sudo dnf install samba samba-client samba-common

安装后检查Samba版本:

smbd -V

配置Samba:

配置文件smb.conf通常位于/etc/samba/目录下。你可以编辑这个文件来定义共享目录、安全设置等。例如,要创建一个名为“shared”的共享目录,你可以在smb.conf中添加以下内容:

[public]comment = Public Documentspath = /home/publicbrowseable = yesread only = noguest ok = yes

这将创建一个名为"public"的共享目录,路径为"/home/public",任何人都可以浏览和读写这个目录。

然后,你需要重启Samba服务以使更改生效。

启动和管理Samba服务:

sudo systemctl start smbd
sudo systemctl enable smbd

检查Samba服务状态:

sudo systemctl status smbd

配置段 [global]、[homes]、[printers]

smb.conf 文件中存在三个特殊的配置段。

>[global] 全局设置:这部分配置项的内容对整个 Samba 服务器都有效。

>[homes]   宿主目录共享设置:设置Linux用户的默认共享,对应用户的宿主目录。当用户访 问服务器中与自己用户名同名的共享目录时,通过验证后将自动映射到该用户的宿主文件 夹中。

[printers]打印机共享设置:如果需要共享打印机设备,可以在这部分进行配置。

若需要在 smb.conf 文件中设置新的共享文件夹,只需要增加一段如“[myshare]” 开始的共享设 置即可,其中“myshare”为用户自定义的共享名。新的共享文件夹设置可以参考“[homes]”和“[printers]” 部分的内容。

Smb.conf 文件中常见的配置项及含义说明

配置项  

说明

workgroup

设置服务器所在的工作组名称.

server string

设置服务器的说明文字,用于描述Samba服务器.

security

设置服务器的安全级别,可设为以下三个值中的一个:user(需由本服务器验证用户名及密 码)、server(需指定另一台服务器来验证用户名及密码)、ads(由Windows域控制器验证用 户名及密码)。

log file

设置Samba服务器的日志文件,默认存放在/var/log/samba/目录下,表示将日志文件保存到 /var/log/samba/目录中,按每个客户机建立一个日志文件,其中“%m”变量表示客户端主机 名或IP地址。

passwd backup

设置共享账户文件的类型,默认使用tdbsam(TDB数据库文件)。若网络内拥有LDAP目录

认证,这里可以改用ldapsam数据库文件;另外,若要兼容旧版的Samba密码文件,也可以

将类型设为smbpasswd。

comment

设置对应共享目录的注释、说明信息.。

path

设置对应共享目录在服务器中的文件夹路径。

browseable

设置该共享目录在“网上邻居”中是否可见,设置为no时相当于隐藏共享目录。

guest ok

设置是否所有人都可以访问共享目录,与“public”配置项的作用相同。

writable

设置该共享目录是否可写,与“read only”配置项的作用相反。

smbpasswd工具

smbpasswd 的基本语法如下:

smbpasswd [选项] [用户名]

用户账户及其权限主要存储在 smbpasswd 数据库中。
 

列出所有的samba共享用户

smbpasswd -L

 如果 -L 选项不可用,你可能需要使用 pdbedit -L 来达到同样的目的。

需要管理员权限(root)   

但是,-L 选项并不是所有版本的 smbpasswd 都支持的。如果在你的系统上运行上述命令时遇到问题,可能是因为你的 Samba 版本不支持该选项。在这种情况下,你可以通过查询 Samba 的用户数据库(通常是 /etc/samba/smbpasswd)来获取用户列表,但这通常需要更复杂的操作,如使用 awk, cut 或其他文本处理工具来解析数据库文件。

另一个替代方法是查看 Samba 的配置文件 smb.conf,看是否在其中定义了特定的用户。但是,通常 smb.conf 并不会直接列出所有用户,它更多地用于定义共享目录、权限和其他设置。

如果 smbpasswd -L 不可用或没有返回你期望的结果,你可以尝试查看 Samba 的日志文件,或者使用 Samba 提供的其他管理工具,比如 smbclient,但这些方法通常不会直接列出用户列表。

添加新用户:

smbpasswd -a 用户名

这个命令会添加一个新用户到 Samba 的密码数据库中,并要求你输入两次密码以确认。 

修改用户密码:

smbpasswd -c 用户名

删除用户:

smbpasswd -x 用户名

显示用户状态:

smbpasswd -e 用户名

这个命令会显示指定用户的详细信息,包括是否被禁用、密码过期日期等。

smbpasswd参数

  1. Username: 用户名,这是你在 Samba 中识别用户的唯一标识。

  2. NT-Password: 这个字段通常会被星号 (*) 替代,表示有设置密码,但实际的密码不会显示出来,以保护安全性。

  3. LAN-Manager Password: 类似 NT-Password,如果设置了密码,这里也会显示为星号 (*)。

  4. Last password change: 上次更改密码的日期和时间。

  5. Account expires: 账户过期的日期和时间。如果设置为 "never",则表示账户永远不会过期。

  6. Last login: 最近一次成功登录的日期和时间。

  7. Login count: 自从账户创建以来的登录次数。

  8. Min. password age: 更改密码前必须等待的最短时间(天数)。如果设置为 "0",则表示没有最小密码年龄限制。

  9. Max. password age: 密码有效期的最大时间(天数)。如果设置为 "0" 或 "never",则表示密码永不过期。

  10. Password can change: 密码可以更改的时间范围。如果显示 "now",则表示密码可以立即更改。

  11. UID: 用户的 Unix UID(用户ID)。

  12. GID: 用户的 Unix GID(组ID)。

  13. Home directory: 用户的主目录。

  14. Shell: 用户的默认 shell。

  15. Account disabled: 如果账户被禁用,这里会显示 "Yes",否则为 "No"。

  16. Account locked: 如果账户被锁定,这里会显示 "Yes",否则为 "No"。

  17. Temporary account: 如果账户是临时账户,这里会显示 "Yes",否则为 "No"。

  18. Workstation trust account: 如果账户是工作站信任账户,这里会显示 "Yes",否则为 "No"。

  19. Interdomain trust account: 如果账户是跨域信任账户,这里会显示 "Yes",否则为 "No"。

pdbedit工具

pdbedit 是 Samba 套件中的一个命令行工具,用于管理和查询 Samba 的用户数据库(PassDB)。这个工具允许你添加、删除、修改和列出 Samba 用户账户,以及查看和设置账户的密码策略和属性。

pdbedit 的基本语法如下:

pdbedit [选项]...

常见的 pdbedit 选项包括:

  • -L--list:列出所有 Samba 用户账户。这是最常用的选项之一,可以用来查看当前系统中有多少 Samba 用户,以及他们的用户名、SID(安全标识符)、UID 和 GID 等信息。

  • -v--verbose:详细模式,提供更多输出信息。

  • -W--domain=DOM:指定操作的域,默认为本地机器的域。

  • -a--add=USER:添加一个新的 Samba 用户账户。

  • -u--username=USER:操作指定的 Samba 用户账户。

  • -x--delete=USER:删除一个 Samba 用户账户。

  • -t--trust-account:标记用户账户为信任账户,通常用于域控制器。

  • -m--max-login-timeout=SECONDS:设置最大登录超时时间(秒)。

  • -r--remove-max-login-timeout:移除最大登录超时时间。

列出所有samba共享用户

pdbedit -L

 要添加一个新的 Samba 用户 john,你可以运行:

sudo pdbedit -a -u john

查看某一个用户的信息

pdbedit -vL 用户名

删除samba用户

pdbedit -x -u 用户名

testparm工具

Samba服务器提供了一个配置文件检查工具——testparm程序,使用 testparm工具可以对smb.conf配置文件的正确性进行检查,如果发现有错误将会进行提醒。

testparm 命令的语法

testparm [选项] [配置文件]

常见的选项包括:

  • -s:这个选项强制 testparm 从标准输入读取配置数据,而不是从文件中读取。这对于调试和测试动态生成的配置文件很有用。
  • -h:显示帮助信息。
  • -L servername:设置 Samba 服务器的名字。
  • -v:详细模式,提供更多的输出信息。
  • -D:调试模式,提供调试级别的输出信息。

如果没有指定配置文件,testparm 将默认查找 /etc/samba/smb.conf 或者其他默认位置的配置文件。

例如:

sudo testparm

这将检查默认的 smb.conf 文件,并输出关于配置的信息,包括任何语法错误或警告。

如果配置文件不在默认位置,你可以指定配置文件的完整路径:

sudo testparm /path/to/your/smb.conf

testparm 的输出会包含 Samba 服务器的全局参数、共享设置、安全选项、用户和密码策略等信息,有助于确保 Samba 服务能够按照预期工作。

在修改了 smb.conf 文件后,使用 testparm 是一个良好的实践,可以避免不必要的服务启动失败或功能问题。如果 testparm 报告了错误,你应该根据输出的信息来修正配置文件,然后再尝试重启 Samba 服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ShardingSphere的项目应用

1. 事情的起因 最近,随着业务的发展,我们的项目面临着日益增长的数据挑战。系统使用的数据库是mysql,每天的增量差不多在百万左右,由于没有进行分库分表,以前设置的单表保存已经越发不能满足需求,所以想维持表的性能,甲方考虑对这些大数据量的表进行分表操作,同时也采…

MySQL left join、right join以及inner join的区别 ?

LEFT JOIN(左连接)、RIGHT JOIN(右连接)和INNER JOIN(内连接)是SQL中用于连接两个或多个表以检索数据的重要操作。它们之间的主要区别在于如何处理那些在连接条件下没有匹配的行。下面通过具体的例子来说明…

扫地机器人如何解决安全性与隐私保护

扫地机器人在解决安全性与隐私保护方面,需要从多个角度入手,包括产品设计、技术实现、用户教育以及法律法规遵守等方面。以下是具体的解决方案: 一、安全性解决方案 1.提升避障能力:使用先进的传感器技术,如激光雷达、…

JavaScript switch 语句

JavaScript switch 语句 JavaScript 中的 switch 语句是一种多分支选择结构,用于根据变量的值执行不同的代码块。它提供了一种简洁的方式来替代多个 if...else 语句,特别是在处理多个条件时。 基本语法 switch (expression) {case value1:// 代码块 1…

微信小程序实现省市区级联选择组件

微信小程序实现省市区级联选择组件 首先&#xff0c;创建一个新的组件&#xff0c;命名为 area-picker。 在 area-picker.wxml 文件中添加以下代码&#xff1a; <view class"area-picker"><picker mode"multiSelector" bindchange"onPick…

C++基础篇(2)

目录 前言 1.缺省参数 2.函数重载 2.1函数重载的基本规则 ​编辑2.2注意事项 2.3 重载解析&#xff08;Overload Resolution&#xff09;--补充内容 3.引用 3.1引用的概念和定义 3.2引用的特性 3.3引用的使用 3.4const引用 4.指针和引用的关系 结束语 前言 上节小编…

PlantUML 教程:绘制时序图

绘制时序图是 PlantUML 的一个强大功能&#xff0c;下面是详细的 PlantUML 时序图教程&#xff0c;帮助你理解如何使用它来创建清晰的时序图。 基本概念 时序图&#xff08;Sequence Diagram&#xff09;用于展示对象之间的交互以及它们之间的消息传递顺序。它主要由以下元素…

感应灯光画纯电路开源版本

前言 之前那版灯光画用的从垃圾佬淘的电路板拼出来的&#xff0c;功能不全&#xff0c;显示效果不太好而且无法固定到相框上&#xff0c;这次改版用的嘉立创smt&#xff0c;贴了5片板子&#xff08;19元&#xff09;&#xff0c;功能上的改进是加了无极触摸调光、添加了黄白两…

简易图书管理系统——MYsql+Javase+JDBC

目录 前言 数据表的建立 操作包各个类的实现 增加类 删除类 展示类 借阅与归还类 前言 书接上文 JDBC编程的学习——MYsql版本-CSDN博客 本期我们通过对先前图书管理系统进行改造,是它的数据能保存在数据库中 完整代码我已经保存在github中,能不能给个星呢!!!! call…

debian固定ip

debian固定ip 前言 安装好的Debian系统后&#xff0c;为了确保每次登陆的ip不变&#xff0c;需要固定 方法 命令如下 ip addr | grep inet因为有有线网和无线网 2 种连接方式&#xff0c;因此需要区别。 其中 enp 的是有线&#xff0c;wlp 的是无线 查看网关 IP 命令如下 …

互联网末法时代的一些思考

这篇文章也是临时起意&#xff0c;很长一段时间没写个人思考类的文章&#xff0c;主要原因也是时间完全不够用。随着年龄的增长&#xff0c;看待问题的视角也逐渐发生变化&#xff0c;例如从关注现象到关注动机&#xff0c;从关注结果到关注起因&#xff0c;2021年的时代我曾经…

java面向对象进阶篇--static

一、前言 java进阶篇已经开始了&#xff0c;先从面向对象开始&#xff0c;由于时间原因今天就只更新了static部分&#xff0c;内容上特别详细&#xff0c;一些特别的注意事项也在反复的提醒大家。 温馨提示一下&#xff0c;往后的java篇会越来越难&#xff0c;希望大家能够坚…

P2p网络性能测度及监测系统模型

P2p网络性能测度及监测系统模型 网络IP性能参数 IP包传输时延时延变化误差率丢失率虚假率吞吐量可用性连接性测度单向延迟测度单向分组丢失测度往返延迟测度 OSI中的位置-> 网络层 用途 面相业务的网络分布式计算网络游戏IP软件电话流媒体分发多媒体通信 业务质量 通过…

运维检查:mysql表自增id是否快要用完

数据库表中最大自增ID用完会报错。判断是否接近或达到自增ID类型的最大值&#xff1a;‌ 对于MySQL中的自增ID&#xff0c;‌如果使用的是int类型&#xff0c;‌其无符号&#xff08;‌unsigned&#xff09;‌的最大值可以达到2^32 - 1&#xff0c;‌即4294967295。‌如果使用的…

python编程:从入门到实践(第三版) 笔记

文章目录 资源网站:https://www.ituring.com.cn/book/3038配置VSCode推荐资源网站推荐资源网址 资源网站:https://www.ituring.com.cn/book/3038 配置VSCode 推荐资源网站 推荐资源网址 英文版主页&#xff1a; https://ehmatthes.github.io/pcc_3e 中文版主页&#xff1a; h…

上市公司企业共同机构所有权数据、机构交叉持股数据(2005-2023)

数据来源&#xff1a;基础数据来源于上市公司企业年报 时间跨度&#xff1a;2005-2023年 数据范围&#xff1a;企业层面 数据指标&#xff1a; 参考《中国工业经济》杜勇&#xff08;2021&#xff09;老师的做法&#xff0c;从 3 个维度构造指标反映上市公司共同机构所有权&…

Vue和Element UI 路由跳转

在Vue.js中&#xff0c;使用Vue Router可以方便地实现页面之间的路由跳转。Element UI是一个基于Vue 2.0的桌面端组件库&#xff0c;它本身并不直接提供路由跳转的功能&#xff0c;但你可以在使用Element UI的Vue项目中结合Vue Router来实现这一功能。 以下是一个基于Vue和Ele…

Proxyman for Mac v5.6.1 抓包调试工具

Mac分享吧 文章目录 效果一、下载软件二、功能三、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 四、运行测试1、打开软件 安装完成&#xff01;&#xff01;&#xff01; 效果 一…

【华为OD笔试】2024D卷命题规律解读【分析300+场OD笔试考点总结】

可上 欧弟OJ系统 练习华子OD、大厂真题 绿色聊天软件戳 od1441了解算法冲刺训练&#xff08;备注【CSDN】否则不通过&#xff09; 文章目录 相关推荐阅读华为OD笔试2024D卷命题规律解读华为OD算法/大厂面试高频题算法练习冲刺训练 相关推荐阅读 【华为OD笔试】2024D卷机考套题…

C# Opencv实现本地以图搜图

地址&#xff1a;冯腾飞/本地以图搜图