如何在 Active Directory 帐户下运行 Systemd 服务?

如何在 Active Directory 帐户下运行 Systemd 服务?

我在 Ubuntu 17.10 下运行 NAS,并且更改了 Samba 配置,以便它现在作为域控制器运行。

我想做的下一步是修改 NAS 上的一些 Systemd 服务,以便它们使用域帐户运行,而不再使用本地帐户。

例如:/lib/systemd/system/[email protected]

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[email protected]

[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=multi-user.target

可以这样做吗?如果可以,怎么做?我尝试将该行更改User=%iUser=SAMDOM\syncthing,但重新启动服务后 Systemd 抛出错误:

Invalid user/group name or numeric ID: SAMDOM\syncthing

我可以通过以下方式找到用户wbinfo -u,并id "SAMDOM\syncthing"显示正确的 UID 和 GID。我在互联网上搜索有关在 Systemd 中使用域帐户的更多信息但没有成功,所以我希望这里有人知道如何做到这一点。

PS:如果需要其他信息(例如日志、Samba 配置),我会尽快提供。

答案1

我已经尝试过并且有效。我的问题是名为“syncthing”的旧本地帐户仍然存在并导致命名冲突。删除本地帐户后,Systemd 使用域帐户,一切正常。

根据我的理解,我也可以将 保留User=%i在单元文件中,因为它会自动使用名称“syncthing”。

这比我想象的要容易!

相关内容