标签 Samba 下的文章

中国超算海洋之光的性能已达 1.5E

美国计算机协会(ACM)发布消息称,由中国科学家投稿的《涡轮机械流动的精确计算》论文入围 2023 年戈登·贝尔奖,该奖项被誉为“超级计算应用领域的诺贝尔奖”。这篇论文将于 11 月份的 SC23 会议之前正式发布,是基于 1.5 ExaFlops(百亿亿次)超级计算机“神威·海洋之光”完成的,它是“神威·太湖之光”升级版。据该论文,海洋之光拥有超过 10 万个定制的 SW26010 Pro 处理器节点,分布在 105 个机柜中,其理论峰值性能为 1.5 E。据预测,如果将该超级计算机规模扩大到 120 个机柜,在 FP64 精度下的峰值将达到 1.72 E,这将超过美国橡树岭国家实验室的 1.68 E 的 Frontier 超算。而在 160 个机柜的条件下,FP64 峰值性能将接近 2.3 E,将有望击败已经安装完成的美国能源部阿贡国家实验室的 Aurora 超算。

消息来源:Next Platform
老王点评:我们只是懒得参加 TOP500 排名而已。

内核级 SMB 服务器 Ksmbd 进入稳定状态

在 Linux 内核 6.6 候选发布版中,包含了一个 Ksmbd 稳定版,它是三星开发的内核级服务器,通过 SMB 协议提供文件和打印机的网络共享服务。Linux 一直以来都在使用用户空间的 Samba 解决方案,但由于性能、内存占用和复杂度等问题并不理想。Ksmbd 是与 Samba 项目合作开发的,其目标是成为比 Samba 性能更强、重点更突出的解决方案。现在它经过了大量的安全测试,被认为达到了稳定状态,计划进入 Linux 内核 6.6。

消息来源:The Register
老王点评:虽然说是已经达到了稳定状态,但是我对 SMB 服务进入内核空间总觉得不太放心。

人工智能生成的艺术“通过”图灵测试

有人在网上发布了一些使用人工智能生成的图片,用螺旋或棋盘纹理展示了中世纪村庄。这些图片因其非凡的几何特质迅速在社交媒体上获得广泛赞誉。它们是使用稳定扩散和控制网引导技术创建的。之前也有人采用相同的技术来创建图片式的二维码。Y-Combinator 联合创始人 Paul Graham 甚至将之比喻为:“对我来说,这是人工智能生成的艺术通过图灵测试的时刻。”

消息来源:Ars Technica
老王点评:虽然是夸张的说法,但是人工智能生成的图片已经开始超过简单的模仿了。

使用 Samba 设置跨平台文件共享。

 title=

如果你使用不同的操作系统,能够在它们之间共享文件会让你倍感方便。这篇文章介绍如何使用 Sambamount.cifs 在 Linux (Fedora 33)和 Windows 10 之间设置文件共享。

Samba 是 SMB/CIFS 协议的 Linux 实现,允许通过网络连接直接访问共享的文件夹和打印机。 mount.cifs 是 Samba 套件的一部分,可让你在 Linux 下挂载 CIFS 文件系统。

注意: 这些说明适用于在你的私有本地网络内,或在 Linux 宿主机和虚拟化的 Windows 访客机之间的虚拟主机专用网络中共享文件。不要将本文视为你公司网络的操作指南,因为本文没有实现必要的网络安全考虑。

从 Windows 访问 Linux

本节介绍从 Windows 文件资源管理器访问用户的 Linux 主目录。

1、安装和配置 Samba

进入你的系统安装 Samba:

dnf install samba

Samba 是一个系统守护进程,其配置文件位于 /etc/samba/smb.conf。它的默认配置应该就可以工作。如果不行,下面这个最小化配置应该可以解决问题:

[global]
        workgroup = SAMBA
        server string = %h server (Samba %v)
        invalid users = root
        security = user
[homes]
        comment = Home Directories
        browseable = no
        valid users = %S
        writable = yes

你可以在该项目网站的 smb.conf 部分找到参数的详细说明。

2、修改 LinuxSE

如果你的 Linux 发行版受 SELinux 保护(比如 Fedora),必须通过以下命令才能通过 Samba 共享主目录:

setsebool -P samba_enable_home_dirs on

通过以下命令查看这个值:

getsebool samba_enable_home_dirs

输出如下:

 title=

3、启用你的用户

Samba 使用一组用户/密码来管理连接权限。通过键入以下命令将你的 Linux 用户添加到该集合中:

smbpasswd -a <你的用户名>

系统提示你输入密码。这是一个 全新 的密码;而不是你账户的当前密码。请输入你想用来登录 Samba 的密码。

键入以下命令得到有 Samba 使用权限的用户列表:

pdbedit -L -v

键入以下命令删除一个用户:

smbpasswd -x <用户名>

4、开启 Samba

既然 Samba 是一个系统守护进程,你可以在 Fedora 上键入以下命令启动它:

systemctl start smb

这将为当前会话开启 Samba 服务。如果想让它自启动,键入以下命令:

systemctl enable smb

在某些系统上,Samba 守护进程注册为 smbd

4、配置防火墙

你的防火墙会默认阻拦 Samba。通过配置防火墙允许 Samba 能永久访问网络。

你可以在命令行执行如下操作:

firewall-cmd --add-service=samba --permanent

或者,你可以使用 firewall-config 工具以图形化方式进行操作:

 title=

5、从 Windows 访问 Samba

在 Windows 中,打开文件资源管理器。在地址栏中,键入两个反斜杠(\\),紧跟你的 Linux 机器的地址(IP 地址或主机名):

 title=

系统将提示你输入登录信息。输入第 3 步中的用户名和密码组合。你现在应该可以访问 Linux 机器上的主目录:

 title=

从 Linux 访问 Windows

以下步骤说明了如何从 Linux 访问共享的 Windows 文件夹。要实现这一点,需要你的 Windows 用户帐户具有管理员权限。

1、启用文件共享

通过点击 “Windows 按钮” > “ 设置 Settings ” > “ 网络和 Internet Network & Internet ” ,或者右键单击任务栏右下角的小监视器图标, 打开网络和共享中心 Open Network an d Sharing Center

 title=

在打开的窗口中,找到你要使用的连接并记下其配置文件。我使用了 以太网 3,它被标记为 公用网络 Public Network

注意:如果你的 PC 经常连接公用网络,请考虑将本地计算机的连接配置文件更改为 私有

记住你的网络配置,然后单击 更改高级共享设置 Change advanced sharing settings

 title=

选择与你的连接对应的配置文件并打开 网络发现 network discovery 文件和打印机共享 file and printer sharing

 title=

2、定义一个共享文件夹

通过右键单击你要共享的文件夹打开上下文菜单,导航到 授予访问权限 Give access to ,然后选择 特定用户... Specific people...

 title=

检查你当前的用户名是否在列表中。点击 共享 Share 将此文件夹标记为共享:

 title=

你可以通过在文件资源管理器的地址栏中输入 \\localhost 来显示所有共享文件夹的列表:

 title=

 title=

3、在 Linux 下挂载共享文件夹

回到你的 Linux 系统,打开一个命令行,然后创建一个新文件夹,用于挂载 Windows 共享:

mkdir ~/WindowsShare

挂载 Windows 共享是使用 mount.cifs 完成的,它应该被默认安装。使用如下命令临时挂载你的共享文件夹:

sudo mount.cifs //<address-of-windows-pc>/MySharedFolder ~/WindowsShare/ -o user=<Windows-user>,uid=$UID

在这个命令里:

  • <address-of-windows-pc> 是 Windows PC 的地址信息(IP 或主机名)
  • <Windows-user> 是允许访问共享文件夹的用户(见步骤 2)

系统将提示你输入 Windows 密码。之后,你将能够使用普通 Linux 用户访问 Windows 上的共享文件夹。

要卸载共享文件夹:

sudo umount ~/WindowsShare/

你还可以在系统启动时挂载 Windows 共享文件夹。按照 这些步骤 相应地配置你的系统。

总结

在这里展示了如何建立临时的文件夹共享访问权限,每次重启后都要重新设置,因此修改成永久访问会更便利。我经常在不同的系统之间来回切换,对我而言设置直接文件访问非常实用。


via: https://opensource.com/article/21/4/share-files-linux-windows

作者:Stephan Avenwedde 选题:lujun9972 译者:hanszhao80 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Samba 是一种灵活的文件共享工具,它将你可能在组织中运行的所有不同平台结合在一起。

 title=

在我接触 Linux 的早期,我是纽约州一个小型学前教育学区的技术总监。我们的技术预算总是捉襟见肘。我们是一个 Windows 2000 活动目录域,但我们的中央服务器磁盘空间有限,而且没有教师的主目录。此外,我们经历过十几次员工电脑硬盘故障。

我正在寻找一种方法,以最小的成本保存员工的工作。这时我发现了 Samba。在那之前,我一直将 Linux 用于内容过滤,不知道我们的 Windows 工作站可以连接到服务器并保存文件备份。

Samba 项目 自 1992 年以来一直存在。当我开始试验这个项目的时候,这个项目已经有 10 年历史了,我对如何配置它一无所知。我买了一本书并阅读了如何实现它,然后我从我们的电脑柜中取出一台旧电脑,购买了一个 300G 的希捷 IDE 驱动器,安装了 Linux,并配置了 Samba。我使用了一个简单的配置,并且它成功了。在向我们的一个 IT 助理展示后,我们部署了这个解决方案。硬盘故障的问题继续存在,但我们的员工不再需要担心失去他们所有的辛苦工作。

Samba 采用 GPL 许可证,并在大多数 Linux 发行版上广泛使用。Samba 有很好的 文档,Fedora 用户可以查阅这份在 Fedora 上配置 Samba 的文档。

在 Linux 上安装 Samba

你可以使用你的发行版的包管理器来安装 Samba。

在 Fedora、CentOS、RHEL、Mageia 和类似的系统上:

$ sudo dnf install samba

在 Debian, Linux Mint 和类似系统上:

$ sudo apt install samba

用 Samba 创建一个共享文件夹

创建一个简单的共享文件夹只需要五个步骤。

1、在你的 Linux 服务器上创建一个你希望用户能够保存共享文件的目录。这个目录可以是服务器上的任何地方:在 /home/opt 或任何最适合你的地方。我使用我的主目录,我把共享目录称为 sambashare

$ mkdir /home/don/sambashare

在 Fedora 和其他运行 SELinux 的发行版上,你必须对这个共享目录给予安全许可:

$ sudo semanage fcontext --add --type "samba_share_t" ~/sambashare
$ sudo restorecon -R ~/sambashare

2、用 Nano 或你选择的文本编辑器编辑 Samba 配置文件。

$ sudo nano /etc/samba/smb.conf

smb.conf 文件的底部添加以下内容,用你自己的共享目录的位置替换我例子中的 /home/don/sambashare 路径:

[sambashare]
        comment = Samba on Linux       
        path = /home/don/sambashare
        read only = no
        browsable = yes

如果你使用 Nano,按 Ctrl-O,然后按回车来保存,按 Ctrl-X 退出。

3、启动或重启 Samba 服务,这取决于你的发行版。

在 Fedora 和类似的系统中,没有明确的许可,服务是不会启动的,所以现在就可以启动 Samba,并在启动时启动:

$ sudo systemctl enable –now smb.conf

在 Debian 和类似系统中,Samba 默认在安装后启动,所以你必须现在就重启它:

$ sudo service smbd restart

4、更新你的防火墙规则,允许访问你的 Samba 共享。该如何做取决于你的系统使用什么防火墙。

如果你正在运行 firewalld:

$ sudo firewall-cmd --permanent --add-service=samba
$ sudo firewall-cmd --reload

如果你正在运行 UFW:

$ sudo ufw allow samba

5、现在你需要设置一个密码来访问你的 Samba 共享。这个用户名(在我的例子中是 don)必须属于你系统中的一个账户。

$ sudo smbpasswd -a don

我在每个 Samba 共享中都放置了一个简单的 README 文件,这样用户就会明白这个目录位于服务器上,他们必须在 VPN 上才能从家里访问它等等。

从 Windows 和 Mac 访问 Samba

在 Windows 电脑上,打开文件管理器(Windows Explorer),访问路径 ip-address-of-the-Linux-computer/sambashare。系统会提示你输入 Samba 共享密码,然后 sambashare 目录中的文件会出现在你的文件管理器窗口中,就像它们存在于你的桌面上一样。你可以开始在网络上的这个新共享目录中存储你的文件。

在 macOS 电脑上,进入 Finder 菜单,选择 Go。在出现的对话框中,输入 smb://ip-address/sambashare,并按照提示输入 Samba 密码。

Samba 意味着共享

Samba 使共享文件变得容易。你可以在 Samba 中使用许多其他方案来创建共享位置,包括用户组的公共文件夹,只接受传入文件的收件箱,以及其他你可能需要的东西。它是开源的、灵活的,而且它把你可能在你的办公室里运行的所有不同的平台联合起来。


via: https://opensource.com/article/21/12/file-sharing-linux-samba

作者:Don Watkins 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

设置一个 Samba 共享,使扫描仪可以容易地被网络上的一台 Linux 计算机访问。

 title=

自由软件运动 因为一台设计不良的打印机 而开始。几十年后,打印机和扫描仪制造商继续重新发明轮子,无视既定的通用协议。因此,每隔一段时间,你就会偶然发现一台打印机或扫描仪似乎无法与你的操作系统配合使用。

最近,我在一台佳能三合一扫描仪(佳能 Maxify MB2720)上遇到了这种情况。我用开源方案解决这个扫描仪的问题。具体来说,我设置了一个 Samba 共享,使扫描仪在我的网络上可用。

Samba 项目 是一个用于 Linux/Unix 与 Windows 互操作的套件。尽管它是大多数用户从未与之交互的低级代码,但该软件使得在你的本地网络上共享文件变得很容易,而不管使用的是什么平台。

我使用的是 Fedora,所以这些说明应该适用于任何基于 RPM 的 Linux 发行版。对于其他发行版,可能需要做一些小的修改。下面是我的做法。

获取佳能工具

从佳能的网站上下载所需的用于 Windows 的 “ 佳能快速实用工具箱 Canon Quick Utility Toolbox ”。该软件是必需的,因为它是配置打印机目标文件夹位置和凭证的唯一方法。完成后,你就不需要再使用该工具了,除非你想做出改变。

在配置打印机之前,你必须在你的 Linux 电脑或服务器上设置一个 Samba 共享。用以下命令安装 Samba:

$ sudo dnf -y install samba

创建 /etc/smb.conf 文件,内容如下:

[global]
        workgroup = WORKGROUP
        netbios name = MYSERVER
        security = user
        #CORE needed for CANON PRINTER SCAN FOLDER
        min protocol = CORE
        #NTML AUTHV1 needed for CANON PRINTER SCAN FOLDER
        ntlm auth = yes
        passdb backend = tdbsam

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

        hosts allow = 127. 192.168.33.
        max smbd processes = 1000

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

[SCANS]
        comment = MB2720 SCANS
        path = /mnt/SCANS
        public = yes
        writable = yes
        browseable = yes
        printable = no
        force user = tux
        create mask = 770

在接近结尾的 force user 这行中,将用户名从 tux 改为你自己的用户名。

不幸的是,佳能打印机不能与高于 CORE 或 NTML v2 认证的服务器信息块(SMB)协议一起工作。由于这个原因,Samba 共享必须配置最古老的 SMB 协议和 NTML 认证版本。这无论如何都不理想,而且有安全问题,所以我创建了一个单独的 Samba 服务器,专门用于扫描仪。我的另一台共享所有家庭网络文件的 Samba 服务器仍然使用 SMB 3 和 NTML v2 认证版本。

启动 Samba 服务端服务,并启用它:

$ sudo systemctl start smb
$ sudo systemctl enable smb

创建一个 Samba 用户

创建你的 Samba 用户并为其设置密码:

$ sudo smbpasswd -a tux

在提示符下输入你的密码。

假设你想在 Linux 系统上挂载你的 Samba 扫描仪,你需要做几个步骤。

创建一个 Samba 客户端凭证文件。我的看起来像这样:

$ sudo cat /root/smb-credentials.txt
username=tux
password=mySTRONGpassword

改变权限,使其不能被其他人阅读:

$ sudo chmod 640 /root/smb-credentials.txt

创建一个挂载点并将其添加到 /etc/fstab 中:

$ sudo mkdir /mnt/MB2720-SCANS

在你的 /etc/fstab 中添加以下这行:

//192.168.33.50/SCANS  /mnt/MB2720-SCANS  cifs vers=3.0,credentials=/root/smb-credentials.txt,gid=1000,uid=1000,_netdev    0 0

这将使用 CIFS 将 Samba 共享扫描挂载到新的挂载点,强制采用 SMBv3,并使用存储在 /root/smb-credetials.txt 中的用户名和密码。它还传递用户的组标识符(GID)和用户标识符(UID),让你拥有 Linux 挂载的全部所有权。_netdev 选项是必需的,以便在网络正常后(例如重启后)挂载该挂载点,因为该挂载点需要网络来访问。

配置佳能软件

现在你已经创建了 Samba 共享,在服务器上进行了配置,并将该共享配置到 Linux 客户端上,你需要启动“佳能快速实用工具箱”来配置打印机。因为佳能没有为 Linux 发布工具箱,所以这一步需要 Windows。你可以尝试 在 WINE 上运行它,但如果失败了,你就必须向别人借一台 Windows 电脑,或者在 GNOME BoxesVirtualBox 中运行一个 Windows 开发者虚拟机

打开打印机,然后启动佳能快速实用工具箱。它应该能找到你的打印机。如果不能看到你的打印机,你必须先将打印机配置为 LAN 或无线网络。

在工具箱中,点击“ 目标文件夹设置 Destination Folder Settings ”。

 title=

输入打印机管理密码。我的默认密码是 “canon”。

单击“ 添加 Add ”按钮。

 title=

在表格中填写“ 显示名 Displayed Name ”、“ 目标位置共享文件夹名称 Shared Folder Name in Destination ”,以及你的 Samba “ 域名/用户名 Domain Name/User Name ”和“ 密码 Password ”。

我把 “ PIN 码 PIN Code ”留空,但如果你想要求每次从打印机扫描时都要输入 PIN 码,你可以设置一个。这在办公室里很有用,每个用户都有自己的 Samba 共享和 PIN 码来保护他们的扫描。

点击“ 连接测试 Connection Test ”来验证表格数据。

点击 “OK” 按钮。

点击 “ 注册到打印机 Register to Printer ”,将你的配置保存到打印机上。

 title=

一切都设置好了。点击“ 退出 Exit ”。你现在已经完成了 Windows 的操作,可能还有工具箱,除非你需要改变什么。

开始扫描

你现在可以从打印机扫描,并从其 LCD 菜单中选择你的“目标文件夹”。扫描结果将直接保存到 Samba 共享中,你可以从你的 Linux 电脑上访问该共享。

为方便起见,用以下命令在你的 Linux 桌面或家目录上创建一个符号链接:

$ sudo ln -sd /mnt/MB2720-SCANS /home/tux/Desktop/MB2720-SCANS

这就是全部内容了!


via: https://opensource.com/article/21/4/linux-scan-samba

作者:Marc Skinner 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本教程将告诉你如何将 Ubuntu 桌面版机器加入到带有 SSSD 和 Realm 服务的 Samba4 活动目录域中,以在活动目录中认证用户。

要求:

  1. 在 Ubuntu 上用 Samba4 创建一个活动目录架构

第 1 步:初始配置

1、 在把 Ubuntu 加入活动目录前确保主机名被正确设置了。使用 hostnamectl 命令设置机器名字或者手动编辑 /etc/hostname 文件。

$ sudo hostnamectl set-hostname your_machine_short_hostname
$ cat /etc/hostname
$ hostnamectl

2、 接下来,编辑机器网络接口设置并且添加合适的 IP 设置,并将正确的 DNS IP 服务器地址指向 Samba 活动目录域控制器,如下图所示。

如果你已经配置了 DHCP 服务来为局域网机器自动分配包括合适的 AD DNS IP 地址的 IP 设置,那么你可以跳过这一步。

设置网络接口

设置网络接口

上图中,192.168.1.254192.168.1.253 代表 Samba4 域控制器的 IP 地址。

3、 用 GUI(图形用户界面)或命令行重启网络服务来应用修改,并且对你的域名发起一系列 ping 请求来测试 DNS 解析如预期工作。 也用 host 命令来测试 DNS 解析。

$ sudo systemctl restart networking.service
$ host your_domain.tld
$ ping -c2 your_domain_name
$ ping -c2 adc1
$ ping -c2 adc2

4、 最后, 确保机器时间和 Samba4 AD 同步。安装 ntpdate 包并用下列指令和 AD 同步时间。

$ sudo apt-get install ntpdate
$ sudo ntpdate your_domain_name

第 2 步:安装需要的包

5、 这一步将安装将 Ubuntu 加入 Samba4 活动目录域控制器所必须的软件和依赖:Realmd 和 SSSD 服务。

$ sudo apt install adcli realmd krb5-user samba-common-bin samba-libs samba-dsdb-modules sssd sssd-tools libnss-sss libpam-sss packagekit policykit-1 

6、 输入大写的默认 realm 名称,然后按下回车继续安装。

输入 Realm 名称

输入 Realm 名称

7、 接着,创建包含以下内容的 SSSD 配置文件。

$ sudo nano /etc/sssd/sssd.conf

加入下面的内容到 sssd.conf 文件。

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
[pam]
reconnection_retries = 3
[sssd]
domains = tecmint.lan
config_file_version = 2
services = nss, pam
default_domain_suffix = TECMINT.LAN
[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u
access_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
ldap_schema = ad
dyndns_update = true
dyndsn_refresh_interval = 43200
dyndns_update_ptr = true
dyndns_ttl = 3600

确保你对应地替换了下列参数的域名:

domains = tecmint.lan
default_domain_suffix = TECMINT.LAN
[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN

8、 接着,用下列命令给 SSSD 配置文件适当的权限:

$ sudo chmod 700 /etc/sssd/sssd.conf

9、 现在,打开并编辑 Realmd 配置文件,输入下面这行:

$ sudo nano /etc/realmd.conf

realmd.conf 文件摘录:

[active-directory]
os-name = Linux Ubuntu
os-version = 17.04
[service]
automatic-install = yes
[users]
default-home = /home/%d/%u
default-shell = /bin/bash
[tecmint.lan]
user-principal = yes
fully-qualified-names = no

10、 最后需要修改的文件属于 Samba 守护进程。 打开 /etc/samba/smb.conf 文件编辑,然后在文件开头加入下面这块代码,在 [global] 之后的部分如下图所示。

workgroup = TECMINT
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = TECMINT.LAN
security = ads

配置 Samba 服务器

配置 Samba 服务器

确保你替换了域名值,特别是对应域名的 realm 值,并运行 testparm 命令检验设置文件是否包含错误。

$ sudo testparm

测试 Samba 配置

测试 Samba 配置

11、 在做完所有必需的修改之后,用 AD 管理员帐号验证 Kerberos 认证并用下面的命令列出票据。

$ sudo kinit [email protected]
$ sudo klist

检验 Kerberos 认证

检验 Kerberos 认证

第 3 步: 加入 Ubuntu 到 Samba4 Realm

12、 键入下列命令将 Ubuntu 机器加入到 Samba4 活动目录。用有管理员权限的 AD DC 账户名字,以便绑定 realm 可以如预期般工作,并替换对应的域名值。

$ sudo realm discover -v DOMAIN.TLD
$ sudo realm list
$ sudo realm join TECMINT.LAN -U ad_admin_user -v
$ sudo net ads join -k

加入 Ubuntu 到 Samba4 Realm

加入 Ubuntu 到 Samba4 Realm

列出 Realm Domain 信息

列出 Realm Domain 信息

加入用户到 Realm Domain

添加用户到 Realm Domain

表列 Realm Domain 信息

添加 Domain 到 Realm

13、 区域绑定好了之后,运行下面的命令确保所有域账户允许在这台机器上认证。

$ sudo realm permit -all

然后你可以使用下面举例的 realm 命令允许或者禁止域用户帐号或群组访问。

$ sudo realm deny -a
$ realm permit --groups ‘domain.tld\Linux Admins’
$ realm permit [email protected]
$ realm permit DOMAIN\\User2

14、 从一个 安装了 RSAT 工具的 Windows 机器上你可以打开 AD UC 并浏览“ 电脑 computers ”容器,并检验是否有一个使用你机器名的对象帐号已经创建。

确保域被加入 AD DC

确保域被加入 AD DC

第 4 步:配置 AD 账户认证

15、 为了在 Ubuntu 机器上用域账户认证,你需要用 root 权限运行 pam-auth-update 命令并允许所有 PAM 配置文件,包括为每个域账户在第一次注册的时候自动创建家目录的选项。

按 [空格] 键检验所有配置项并点击 ok 来应用配置。

$ sudo pam-auth-update

PAM 配置

PAM 配置

16、 在系统上手动编辑 /etc/pam.d/common-account 文件,下面这几行是为了给认证过的域用户自动创建家目录。

session    required    pam_mkhomedir.so    skel=/etc/skel/    umask=0022

17、 如果活动目录用户不能用 linux 命令行修改他们的密码,打开 /etc/pam.d/common-password 文件并在 password 行移除 use_authtok 语句,最后如下:

password       [success=1 default=ignore]      pam_winbind.so try_first_pass

18、 最后,用下面的命令重启并启用以应用 Realmd 和 SSSD 服务的修改:

$ sudo systemctl restart realmd sssd
$ sudo systemctl enable realmd sssd

19、 为了测试 Ubuntu 机器是是否成功集成到 realm ,安装 winbind 包并运行 wbinfo 命令列出域账户和群组,如下所示。

$ sudo apt-get install winbind
$ wbinfo -u
$ wbinfo -g

列出域账户

列出域账户

20、 同样,也可以针对特定的域用户或群组使用 getent 命令检验 Winbind nsswitch 模块。

$ sudo getent passwd your_domain_user
$ sudo getent group ‘domain admins’

检验 Winbind Nsswitch

检验 Winbind Nsswitch

21、 你也可以用 Linux id 命令获取 AD 账户的信息,命令如下:

$ id tecmint_user

检验 AD 用户信息

检验 AD 用户信息

22、 用 su - 后跟上域用户名参数来认证 Ubuntu 主机的一个 Samba4 AD 账户。运行 id 命令获取该 AD 账户的更多信息。

$ su - your_ad_user

AD 用户认证

AD 用户认证

pwd 命令查看你的域用户当前工作目录,和用 passwd 命令修改密码。

23、 在 Ubuntu 上使用有 root 权限的域账户,你需要用下面的命令添加 AD 用户名到 sudo 系统群组:

$ sudo usermod -aG sudo [email protected]

用域账户登录 Ubuntu 并运行 apt update 命令来更新你的系统以检验 root 权限。

24、 给一个域群组 root 权限,用 visudo 命令打开并编辑 /etc/sudoers 文件,并加入如下行:

%domain\ [email protected]              ALL=(ALL:ALL) ALL

25、 要在 Ubuntu 桌面使用域账户认证,通过编辑 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 文件来修改 LightDM 显示管理器,增加以下两行并重启 lightdm 服务或重启机器应用修改。

greeter-show-manual-login=true
greeter-hide-users=true

域账户用“你的域用户”或“你的域用户@你的域” 格式来登录 Ubuntu 桌面。

26、 为使用 Samba AD 账户的简称格式,编辑 /etc/sssd/sssd.conf 文件,在 [sssd] 块加入如下几行命令。

full_name_format = %1$s

并重启 SSSD 守护进程应用改变。

$ sudo systemctl restart sssd

你会注意到 bash 提示符会变成了没有附加域名部分的 AD 用户名。

27、 万一你因为 sssd.conf 里的 enumerate=true 参数设定而不能登录,你得用下面的命令清空 sssd 缓存数据:

$ rm /var/lib/sss/db/cache_tecmint.lan.ldb

这就是全部了!虽然这个教程主要集中于集成 Samba4 活动目录,同样的步骤也能被用于把使用 Realm 和 SSSD 服务的 Ubuntu 整合到微软 Windows 服务器活动目录。


作者简介:

Matei Cezar - 我是一名网瘾少年,开源和基于 linux 系统软件的粉丝,有4年经验在 linux 发行版桌面、服务器和 bash 脚本。


via: https://www.tecmint.com/integrate-ubuntu-to-samba4-ad-dc-with-sssd-and-realm/

作者:Matei Cezar 译者:XYenChi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本指南将向你介绍如何使用 Authconfig 在命令行中将无图形界面的 CentOS 7 服务器集成到 Samba4 AD 域控制器中。

这类设置提供了由 Samba 持有的单一集中式帐户数据库,允许 AD 用户通过网络基础设施对 CentOS 服务器进行身份验证。

要求

  1. 在 Ubuntu 上使用 Samba4 创建 AD 基础架构
  2. CentOS 7.3 安装指南

步骤 1:为 Samba4 AD DC 配置 CentOS

1、 在开始将 CentOS 7 服务器加入 Samba4 DC 之前,你需要确保网络接口被正确配置为通过 DNS 服务查询域。

运行 ip address 命令列出你机器网络接口,选择要编辑的特定网卡,通过针对接口名称运行 nmtui-edit 命令(如本例中的 ens33),如下所示。

# ip address
# nmtui-edit ens33

List Network Interfaces

列出网络接口

2、 打开网络接口进行编辑后,添加最适合 LAN 的静态 IPv4 配置,并确保为 DNS 服务器设置 Samba AD 域控制器 IP 地址。

另外,在搜索域中追加你的域的名称,并使用 [TAB] 键跳到确定按钮来应用更改。

当你仅对域 dns 记录使用短名称时, 已提交的搜索域保证域对应项会自动追加到 dns 解析 (FQDN) 中。

Configure Network Interface

配置网络接口

3、最后,重启网络守护进程以应用更改,并通过对域名和域控制器 ping 来测试 DNS 解析是否正确配置,如下所示。

# systemctl restart network.service
# ping -c2 tecmint.lan
# ping -c2 adc1
# ping -c2 adc2

Verify DNS Resolution on Domain

验证域上的 DNS 解析

4、 另外,使用下面的命令配置你的计算机主机名并重启机器应用更改。

# hostnamectl set-hostname your_hostname
# init 6

使用以下命令验证主机名是否正确配置。

# cat /etc/hostname
# hostname

5、 最后,使用 root 权限运行以下命令,与 Samba4 AD DC 同步本地时间。

# yum install ntpdate
# ntpdate domain.tld

Sync Time with Samba4 AD DC

与 Samba4 AD DC 同步时间

步骤 2:将 CentOS 7 服务器加入到 Samba4 AD DC

6、 要将 CentOS 7 服务器加入到 Samba4 AD 中,请先用具有 root 权限的帐户在计算机上安装以下软件包。

# yum install authconfig samba-winbind samba-client samba-winbind-clients

7、 为了将 CentOS 7 服务器与域控制器集成,可以使用 root 权限运行 authconfig-tui,并使用下面的配置。

# authconfig-tui

首屏选择:

  • 在 User Information 中:

    • Use Winbind
  • 在 Authentication 中使用[空格键]选择:

    • Use Shadow Password
    • Use Winbind Authentication
    • Local authorization is sufficient

Authentication Configuration

验证配置

8、 点击 Next 进入 Winbind 设置界面并配置如下:

  • Security Model: ads
  • Domain = YOUR\_DOMAIN (use upper case)
  • Domain Controllers = domain machines FQDN (comma separated if more than one)
  • ADS Realm = YOUR\_DOMAIN.TLD
  • Template Shell = /bin/bash

Winbind Settings

Winbind 设置

9、 要加入域,使用 [tab] 键跳到 “Join Domain” 按钮,然后按[回车]键加入域。

在下一个页面,添加具有提升权限的 Samba4 AD 帐户的凭据,以将计算机帐户加入 AD,然后单击 “OK” 应用设置并关闭提示。

请注意,当你输入用户密码时,凭据将不会显示在屏幕中。在下面再次点击 OK,完成 CentOS 7 的域集成。

Join Domain to Samba4 AD DC

加入域到 Samba4 AD DC

Confirm Winbind Settings

确认 Winbind 设置

要强制将机器添加到特定的 Samba AD OU 中,请使用 hostname 命令获取计算机的完整名称,并使用机器名称在该 OU 中创建一个新的计算机对象。

将新对象添加到 Samba4 AD 中的最佳方法是已经集成到安装了 RSAT 工具的域的 Windows 机器上使用 ADUC 工具。

重要:加入域的另一种方法是使用 authconfig 命令行,它可以对集成过程进行广泛的控制。

但是,这种方法很容易因为其众多参数造成错误,如下所示。该命令必须输入一条长命令行。

# authconfig --enablewinbind --enablewinbindauth --smbsecurity ads --smbworkgroup=YOUR_DOMAIN --smbrealm YOUR_DOMAIN.TLD --smbservers=adc1.yourdomain.tld --krb5realm=YOUR_DOMAIN.TLD --enablewinbindoffline --enablewinbindkrb5 --winbindtemplateshell=/bin/bash--winbindjoin=domain_admin_user --update  --enablelocauthorize   --savebackup=/backups

10、 机器加入域后,通过使用以下命令验证 winbind 服务是否正常运行。

# systemctl status winbind.service

11、 接着检查是否在 Samba4 AD 中成功创建了 CentOS 机器对象。从安装了 RSAT 工具的 Windows 机器使用 AD 用户和计算机工具,并进入到你的域计算机容器。一个名为 CentOS 7 Server 的新 AD 计算机帐户对象应该在右边的列表中。

12、 最后,使用文本编辑器打开 samba 主配置文件(/etc/samba/smb.conf)来调整配置,并在 [global] 配置块的末尾附加以下行,如下所示:

winbind use default domain = true
winbind offline logon = true

Configure Samba

配置 Samba

13、 为了在 AD 帐户首次登录时在机器上创建本地家目录,请运行以下命令:

# authconfig --enablemkhomedir --update

14、 最后,重启 Samba 守护进程使更改生效,并使用一个 AD 账户登陆验证域加入。AD 帐户的家目录应该会自动创建。

# systemctl restart winbind
# su - domain_account

Verify Domain Joining

验证域加入

15、 通过以下命令之一列出域用户或域组。

# wbinfo -u
# wbinfo -g

List Domain Users and Groups

列出域用户和组

16、 要获取有关域用户的信息,请运行以下命令。

# wbinfo -i domain_user

List Domain User Info

列出域用户信息

17、 要显示域摘要信息,请使用以下命令。

# net ads info

List Domain Summary

列出域摘要

步骤 3:使用 Samba4 AD DC 帐号登录CentOS

18、 要在 CentOS 中与域用户进行身份验证,请使用以下命令语法之一。

# su - ‘domain\domain_user’
# su - domain\\domain_user

或者在 samba 配置文件中设置了 winbind use default domain = true 参数的情况下,使用下面的语法。

# su - domain_user
# su - [email protected]

19、 要为域用户或组添加 root 权限,请使用 visudocommand 编辑 sudoers 文件,并添加以下截图所示的行。

YOUR_DOMAIN\\domain_username             ALL=(ALL:ALL) ALL      #For domain users
%YOUR_DOMAIN\\your_domain\  group            ALL=(ALL:ALL) ALL  #For domain groups

或者在 samba 配置文件中设置了 winbind use default domain = true 参数的情况下,使用下面的语法。

domain_username                  ALL=(ALL:ALL) ALL      #For domain users
%your_domain\  group             ALL=(ALL:ALL) ALL  #For domain groups

Grant Root Privileges on Domain Users

授予域用户 root 权限

20、 针对 Samba4 AD DC 的以下一系列命令也可用于故障排除:

# wbinfo -p #Ping domain
# wbinfo -n domain_account #Get the SID of a domain account
# wbinfo -t  #Check trust relationship

21、 要离开该域, 请使用具有提升权限的域帐户对你的域名运行以下命令。从 AD 中删除计算机帐户后, 重启计算机以在集成进程之前还原更改。

# net ads leave -w DOMAIN -U domain_admin
# init 6

就是这样了!尽管此过程主要集中在将 CentOS 7 服务器加入到 Samba4 AD DC 中,但这里描述的相同步骤也适用于将 CentOS 服务器集成到 Microsoft Windows Server 2012 AD 中。


作者简介:

Matei Cezar - 我是一个电脑上瘾的家伙,开源和基于 linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约 4 年的经验。


via: https://www.tecmint.com/integrate-centos-7-to-samba4-active-directory/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出