从 Windows 访问 Linux 共享

要从 Windows 访问 Linux Samba 服务器上的共享,请打开我的电脑或者资源管理器并按以下格式输入 Samba 服务器的主机名和共享名:

\servername\sharename

如果输入 \servername ,Windows 将显示 Linux 系统正在共享的目录。
我们还可以使用相同的语法将网络驱动器映射到共享名称。

smbusers File

对于 Windows 用户访问 Linux 系统上的 Samba 共享,用户必须提供 Windows 用户名和 Samba 密码。
Windows 用户名必须与 Linux 用户名相同或者必须映射到 Linux 用户名。
Samba 将这些用户名映射存储在 /etc/samba/smbusers 文件中。
在 Linux 和 Windows 上具有相同用户名的用户不需要此文件中的条目,但他们仍然需要 Samba 密码。

/etc/samba/smbusers 文件有两个默认条目:

root = administrator admin
nobody = guest pcguest smbguest

第一个条目将 Linux 根用户映射到 Windows 中的管理员和管理员用户。
第二个条目将 Linux 用户nobody 映射到三个Windows 用户名guest、pcguest、smbguest。

要将 john 的 Windows 用户名映射到 user01 的 Linux 用户名,请将以下条目添加到 /etc/samba/smbusers:

# vi /etc/samba/smbusers
user01 = john

Samba 使用 Samba 密码而不是 Linux 密码来验证用户。
使用以下命令为 user01 用户添加密码:

# smbpasswd –a user01 
New SMB password: 
Retype new SMB password: 
Added user oracle.

从 Linux 访问 Windows 共享

有 2 个实用程序可以查询 Samba 服务器:

  • findsmb
  • smbtree

使用 findsmb 命令查询 Samba 服务器的子网。
该命令显示找到的每个服务器的 IP 地址、NetBIOS 名称、工作组、操作系统和版本。

我们还可以使用 smbtree 命令,它是一个基于文本的 SMB 网络浏览器。
它显示包含所有已知域、这些域中的服务器以及服务器上的共享的层次结构图。

GNOME 和 KDE 桌面提供基于浏览器的文件管理器来查看网络上的 Windows 共享。
在文件管理器的位置列中输入 smb: 以浏览共享。

使用 smbclient 实用程序从命令行连接到 Windows 共享。
格式如下:

smbclient //[servername]/[sharename] [-U [username]]

成功登录后将显示 smb:> 提示符。
键入 help 以显示命令列表。
键入 exit 退出 smbclient。

要挂载 Samba 共享,请安装 cifs-utils 包:

# yum install cifs-utils

使用以下格式的 mount.cifs 命令挂载 Samba 共享:

# mount.cifs //[servername]/[sharename] /mount-point -o username=[username],password=[password]

Samba 服务器类型

服务器类型在 /etc/samba/smb.conf 文件的 [global] 部分配置。

独立服务器可以是工作组服务器或者工作组的成员。

域成员服务器登录到域控制器并受域的安全规则约束。

Samba 服务器可以是 Windows NT 域中的域控制器,但不能是 Active Directory 域中的域控制器。

Samba 服务器配置

Samba 的主要配置文件是 /etc/samba/smb.conf 。
此配置文件分为多个部分,每个部分都以方括号括起来的文本开头。
除了 [global] 部分,每个部分都描述了一个共享资源,称为“共享”。
典型的部分是:

部分说明
[global]定义全局参数
[homes]在home目录中定义的共享
[printers]定义打印机
[share name]定义共享

该部分中的参数定义共享属性。
假设正确配置了全局参数,以下示例定义了一个共享,该共享授予任何 Windows 用户对本地 /tmp 目录的读写权限:

# vi /etc/samba/smb.conf
[tmp]
comment = Insert a comment here
path = /tmp
writable = yes
guest ok = yes

有关可以在配置文件中设置的所有参数的说明,请参阅 smb.conf 手册页。

# man smb.conf

有全局参数、安全参数、日志参数、浏览器参数、通讯参数、共享参数。
还有几个图形用户界面来配置和管理 Samba。
这些列表可以在 http://www.samba.org/samba/GUI/ 上找到。

Samba 守护进程和服务

samba 服务器包包括以下守护进程和相关服务:

  • smbd :服务器守护进程,为 Windows 客户端提供文件共享和打印服务。它还负责通过 SMB 协议进行用户认证、资源锁定和数据共享。
  • nmbd :NetBIOS 名称服务器守护进程响应由基于 Windows 的系统中的 SMB/CIFS 产生的名称服务请求。它还在 Windows 网上邻居视图中提供浏览支持。

这些守护进程由它们的关联服务 smb 和 nmb 控制,例如:

# systemctl start smb
# systemctl start nmb

samba-winbind 包包括 winbindd 守护进程和相关服务:

  • winbindd :解析运行 Windows 的服务器上的用户和组信息,并使 Linux 可以理解这些信息。

这个守护进程由 winbind 服务控制:

# systemctl start winbind
安装和配置 Samba

[homes] 共享

Samba 提供此共享使用户可以轻松地与 Windows 系统共享其 Linux 主目录。
下面是一个例子:

# vi /etc/samba/smb.conf
[homes]
comment = Insert a comment here
browsable = no
writable = yes

这些设置可防止所有者以外的用户浏览主目录,同时允许登录所有者完全访问。

欢迎 on it road

启动 Samba 服务器

要启动 Samba 服务器,请执行如下所示的命令。

# systemctl start smb

对 /etc/samba/smb.conf 文件进行配置更改时,发出重新启动或者重新加载:

# systemctl restart smb
# systemctl reload smb

reload 参数不会停止和启动 smb 服务;它只重新加载配置文件。
使用 systemctl 命令将服务配置为在引导时启动。
例子:

# systemctl enable smb

什么是Samba?

Samba 是服务器消息块 (SMB) 协议的开源实现。
它允许 Linux 作为服务器和客户端与 Windows 操作系统一起工作。
Samba 与 Windows 系统共享 Linux 文件和打印机,还允许 Linux 用户访问 Windows 系统上的文件。
Samba 使用 NetBIOS over TCP/IP (NetBT) 协议,不需要 NetBEUI(Microsoft Raw NetBIOS 框架)协议。

大多数 Linux 发行版都包含几个 Samba 包:

  • samba : 提供一个 SMB/Common Internet File System (CIFS) 服务器,可用于为 SMB/CIFS 客户端提供网络服务
  • samba-client :提供一些 SMB/CIFS 客户端来补充 Linux 中内置的 SMB/CIFS 文件系统。这些客户端允许访问 SMB/CIFS 共享和打印到 SMB/CIFS 打印机。
  • samba-common :提供服务器和客户端 Samba 包所需的文件
  • samba-winbind :提供 winbind 守护进程和客户端工具。 winbind 支持 Windows 域中的 Linux 成员身份以及 Windows 用户和组帐户的使用
  • samba-winbind-clients :提供与 winbind 通信所需的网络安全服务 (NSS) 库和可插拔身份验证模块 (PAM)

使用“yum install [package_name]”来安装软件包。

# yum install [package_name]
日期:2020-09-17 00:12:47 来源:oir作者:oir