我用一个全新的服务器替换了我的老化服务器(所以也许“替换”会比“升级”更准确)但当然我收获了所有旧的配置文件等,以及我唯一重要的功能不去是桑巴舞。
我已经为此工作了很多天,甚至今天升级Fedora Server 5.7.11-200.fc32.x86_64
以确保现在没有修复一些错误。绝对没有安装错误或更新错误。而且,值得一提的是,有十几个 samba 包:
samba-dc-provision-4.12.5-0.fc32.noarch
samba-test-libs-4.12.5-0.fc32.x86_64
samba-winbind-clients-4.12.5-0.fc32.x86_64
samba-libs-4.12.5-0.fc32.x86_64
samba-winbind-4.12.5-0.fc32.x86_64
samba-dc-bind-dlz-4.12.5-0.fc32.x86_64
samba-winbind-krb5-locator-4.12.5-0.fc32.x86_64
samba-common-tools-4.12.5-0.fc32.x86_64
samba-devel-4.12.5-0.fc32.x86_64
python3-samba-dc-4.12.5-0.fc32.x86_64
samba-dc-libs-4.12.5-0.fc32.x86_64
samba-vfs-cephfs-4.12.5-0.fc32.x86_64
python3-samba-4.12.5-0.fc32.x86_64
samba-krb5-printing-4.12.5-0.fc32.x86_64
samba-vfs-glusterfs-4.12.5-0.fc32.x86_64
samba-winbind-modules-4.12.5-0.fc32.x86_64
samba-client-libs-4.12.5-0.fc32.x86_64
samba-4.12.5-0.fc32.x86_64
samba-pidl-4.12.5-0.fc32.noarch
samba-client-4.12.5-0.fc32.x86_64
samba-common-libs-4.12.5-0.fc32.x86_64
samba-common-4.12.5-0.fc32.noarch
samba-dc-4.12.5-0.fc32.x86_64
samba-test-4.12.5-0.fc32.x86_64
我试着做我的功课,但我找不到任何对搜索引擎有帮助的例子。我尝试过的配置文件内容比我记得的还要多——当然有几十个,或者一百多个,这取决于你的计数方式。我发布各种配置文件的时间可能并不丰富,但是对于我希望应该可以工作并且适用于 Fedora 32 的示例配置,请参阅下面的链接。但是,旧的配置数据在下面找到。
无论配置文件说什么,错误消息都是相同的 - 至少到目前为止:
At this time the 'samba' binary should only be used for either:
'server role = active directory domain controller' or to access the ntvfs file server with 'server services = +smb' or the rpc proxy with 'dcerpc endpoint servers = remote'
You should start smbd/nmbd/winbindd instead for domain member and standalone file server tasks
[2020/08/02 15:48:33.190413, 0] ../../lib/util/become_daemon.c:121(exit_daemon)
exit_daemon: daemon failed to start: Samba detected misconfigured 'server role' and exited. Check logs for details, error code 22
当然,这首先来自 journalctl 程序,然后同样来自 /var/log/samba/ 中的一个日志,并且在阅读了每个日志以确保之后,没有进一步的信息可以从那里找到,与消息中的自鸣得意的建议相反。
我做的第一件事是试图弄清楚这是想说什么:
您应该为域成员和独立文件服务器任务启动 smbd/nmbd/winbindd
我已经尽我所能跟进了 smbd、nmbd 和 winbindd,但不,这些不能简单地启动,如前所述,显然需要一个博士学位来弄清楚如何在 Fedora 上处理它们——或者我只是不明白我在读什么,虽然我不是新手。有趣的是,在任何启动之后,都有两个 winbind 进程:
/usr/sbin/winbindd --foreground --no-process-group
但是我的客户根本无法连接。而且,我能想到的最好的情况是,这是一个我们无论如何都不想要的域控制器,并且nmdb
似乎是一个NetBios
工具,我不知道它如何帮助将 Linux 文件提供给 Windows。至于smbd
,是的!这听起来就像我们这些年来一直在使用的一样!但是......我还没有找到任何关于它的信息 - 我什至要求 dnf 安装它!不,抱歉,不幸的是,它是短暂的。
为了明确这一点,我认为肯定smbd
是需要的,但不,这些都不起作用:
# systemctl start smbd
Failed to start smbd.service: Unit smbd.service not found.
# dnf install smbd
Last metadata expiration check: 1:27:03 ago on Mon 03 Aug 2020 08:08:24 AM PDT.
No match for argument: smbd
Error: Unable to find a match: smbd
我很乐意尝试这些方面的其他东西 - 欢迎提出建议!(值得注意的是,我试图安装“samba *”,以为可能缺少一个包,samba-winexe-2:4.12.5-0.fc32.x86_64,
所以我当然安装了它。systemctl start smbd
仍然没有做任何事情,但是winexe
添加了一个图像,但它没有手册页,systemctl
也没有也可以用它做任何事情。但是:
# winexe -h
winexe version 4.12
This program may be freely redistributed under the terms of the GNU GPLv3
Usage: winexe [OPTION]... //HOST[:PORT] COMMAND
Options:
-h, --help Display help message
-V, --version Display version number
-U, --user=[DOMAIN/]USERNAME[%PASSWORD] Set the network username
-A, --authentication-file=FILE Get the credentials from a file
-N, --no-pass Do not ask for a password
-k, --kerberos=[yes|no] Use Kerberos
-d, --debuglevel=DEBUGLEVEL Set debug level
--uninstall Uninstall winexe service after
remote execution
--reinstall Reinstall winexe service before
remote execution
--runas=[DOMAIN\]USERNAME%PASSWORD Run as the given user (BEWARE:
this password is sent in
cleartext over the network!)
--runas-file=FILE Run as user options defined in a
file
--interactive=0|1 Desktop interaction: 0 -
disallow, 1 - allow. If allow,
also use the --system switch
(Windows requirement). Vista
does not support this option.
--ostype=0|1|2 OS type: 0 - 32-bit, 1 - 64-bit,
2 - winexe will decide.
Determines which version (32-bit
or 64-bit) of service will be
installed.
这很有趣,但我不知道该怎么处理它,它的用途。所以,我继续前进。
然后,我专注于人们可能认为可能适用于“服务器角色”的明显变化,检查了文档并花费了无数小时在线寻找“服务器角色”问题的解决方案。我已经尝试了很多变体——不仅仅是“服务器角色”,而是整个配置文件——我什至都记不起它们了。而且,文档大多看起来很旧,但我确实认为这是最新的,但它没有产生有用的结果。我很努力,但我忽略了什么吗?也许我在 Windows 世界中不够专业,不知道他们在说什么?例如,域控制器可以只为我熟悉的目录提供服务吗?我认为这正是我不想要的。
在广泛的网络搜索中,唯一接近的东西可以在这里找到。它适用于 Fedora 32,但他们的示例对我不起作用 - 服务器无法启动或提供有用的错误消息。
桑巴舞需要什么:
在 Samba 安装在这里的 20 多年中,它提供了完美的服务,就像 NFS 一样,使用 Workgroup 范式为本地网络上的 Windows 机器提供 Linux 目录。尽管打印机支持很有用,但域没有帮助,也根本不需要。系统必须具有读写权限、简单但有效的用户名/密码方案,以及相当好的权限。大概有 24 年了——我已经迷失了方向——Samba 在这家店里一直担任这个角色。是的,这些系统都比较旧,比如 Windows 7,而且我们根本不关心域控制器——发现它相当专制和独裁,没有我们想要的。(还是我们?)
值得补充的是,这是在仅限内部的网络上,SE linux 不是问题——服务器甚至不会启动!
那么,简单的系统升级是否会结束我们与 Samba 的关系 - 并迫使我们重新考虑 windows?!(这很令人抓狂。)
旧配置:
评论者 Michael Hampton 想要查看旧配置,尽管我看不到相关性,因为我将使用任何允许服务器启动的配置文件运行,并以现代方式重新进行配置。但是,对于像 Michale 这样的人,给你 - 首先,系统:
Server: 3.19.3-200.fc21.x86_64
Packages:
samba-winbind-4.1.17-1.fc21.x86_64
samba-client-4.1.17-1.fc21.x86_64
samba-libs-4.1.17-1.fc21.x86_64
system-config-samba-1.2.100-3.fc21.noarch
samba-common-4.1.17-1.fc21.x86_64
samba-winbind-modules-4.1.17-1.fc21.x86_64
samba-4.1.17-1.fc21.x86_64
配置文件数据 - 来自 testparm,这就是你当年的做法:
Server role: ROLE_STANDALONE
[global]
workgroup = OurWorkgroup
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
idmap config * : backend = tdb
cups options = raw
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = Yes
printable = Yes
print ok = Yes
browseable = No
[Share1]
path = /opt/samba/Share1
username = fred clara
write list = fred, clara
read only = No
你不能/不能从 testparm 得到的一点点:
security = user
bassdb backend = tdbsam
好的,就是这样——没有别的了。我的意思是配置文件中没有其他内容。配置文件中有很多东西被注释掉了,但是,好吧,它被注释掉了!
由于我不太明白的原因,Fedora 将启动 smbd 和 nmbd 的 systemd 单元分别命名为
smb
和nmb
。要管理这些服务,请使用systemctl <command> smb
(或nmb
)。我能够通过检查 RPM 内容找到 systemd 单元,即:
您似乎正在尝试启动 Samba AD DC,但 smb.conf 不适用于 DC,可能用于独立服务器。尝试'systemctl start smbd'