Ubuntu 18.04: 运行 域帐户下的服务
Ubuntu 18.04: Running a service under a domain 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”的方法,以便它正常工作,我会考虑一个更好的答案。我试过只在它周围加上双引号",但没有效果。
我遇到的问题似乎与这个问题最密切相关,但是虽然该海报已解决,但同样的事情对我的系统没有帮助:
-和-
我的 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”的方法,以便它正常工作,我会考虑一个更好的答案。我试过只在它周围加上双引号",但没有效果。