Ubuntu 18.04: 运行 域帐户下的服务

Ubuntu 18.04: Running a service under a domain account

我遇到的问题似乎与这个问题最密切相关,但是虽然该海报已解决,但同样的事情对我的系统没有帮助:

https://unix.stackexchange.com/questions/420881/how-can-i-run-a-systemd-service-under-an-active-directory-account

-和-

我的 Ubuntu 机器加入了我们的域,我可以 "id john.doe" 并从 AD 进行有效查找。我不必指定域,因为在我的 /etc/sssd/sssd.conf 文件中我有 "use_fully_qualified_names = False".

真假都试过了,似乎都没有办法解决。

首先,我编辑我的 .service 文件并设置

[Unit]
Description=servicex
After=network.target

[Service]
ExecStart=/v/runsvc.sh
User=john
WorkingDirectory=/v
KillMode=process
KillSignal=SIGTERM
TimeoutStopSec=5min

[Install]
WantedBy=multi-user.target

然后

 systemctl daemon-reload
 systemctl start servicex.service

服务启动。

然后我编辑我的服务文件并将用户更改为 john.doe。保存文件,重新加载守护进程,然后启动服务。我得到

Failed to start servicex.service: Unit servicex.service is not loaded properly: Exec format error.
See system logs and 'systemctl status servicex.service' for details.
Failed: failed to start servicex.service

systemctl 状态 servicex.service returns:

● servicex.service - servicex
   Loaded: error (Reason: Exec format error)
   Active: inactive (dead) since Thu 2020-01-09 13:34:47 UTC; 15s ago
  Process: 5060 ExecStart=/v/runsvc.sh (code=exited, status=0/SUCCESS)
 Main PID: 5060 (code=exited, status=0/SUCCESS)

journalctl -u servicex.service 不显示任何新条目

journalctl 不显示任何新条目。

这是权限问题,所有者问题吗?

通过执行 "ll -R" 来浏览服务的每个文件夹显示(典型摘录):

drwxr-xr-x 2 john.doe domain users  4096 Jun 15  2016 ./
drwxr-xr-x 8 john.doe domain users  4096 Jun 15  2016 ../
-rw-r--r-- 1 john.doe domain users 29597 Jun 15  2016 CHANGES.md
-rw-r--r-- 1 john.doe domain users  1092 Jun 15  2016 LICENSE

这是该子文件夹树中所有文件的典型特征。

如何以域用户身份运行此服务?

我已找到问题和解决方法。如果有更好的解决方案,请随时post。

这里的问题是域用户有一个“.”。在它的中间。 “john.doe”。在尝试在用户字段中输入虚假值后,我注意到我开始收到一条不同的错误消息,具体说明该帐户有问题。

使用“john.doe”没有给我使用“johnbogus”的相同信息一定是有原因的。其实“john.bogus”和“john.doe”return同样的错误,只是“johnbogus”和“john.doe”return不同的错误信息。

在此基础上,我假设服务用户字段没有被正确解析。所以我为我们的域申请了一个没有“。”的帐户。在里面。该帐户安装并完美运行。

如果有人找到引用或转义“john.doe”的方法,以便它正常工作,我会考虑一个更好的答案。我试过只在它周围加上双引号",但没有效果。