Linux 守护进程的问题,如何能让 ubuntu 的 systemd 执行的子进程能 reboot 或者关机?

2020-03-06 18:51:47 +08:00
 yazinnnn

ubuntu 下提示

Failed to set wall message, ignoring: Interactive authentication required. Failed to reboot system via logind: Interactive authentication required. Failed to open /dev/initctl: 权限不够 Failed to talk to init daemon.

而我另一台 manjaro 的 linux 主机上却可以正常关机

远程 ssh 普通用户上来也是同样的情况,ubuntu 不可以直接重启,manjaro 可以

请问要修改哪里呢?

/etc/sudoers 里已经添加了

xxxx ALL = NOPASSWD: /usr/bin/reboot xxxx ALL = NOPASSWD: /usr/bin/halt

没有起效.....

3257 次点击
所在节点    Linux
1 条回复
jhsea3do
2020-03-07 01:27:20 +08:00
ls -la /dev/initctl
lrwxrwxrwx. 1 root root 25 Dec 17 09:05 /dev/initctl -> /run/systemd/initctl/fifo

ls -la /run/systemd/initctl/fifo
prw-------. 1 root root 0 Dec 17 09:05 /run/systemd/initctl/fifo


你的 systemd 应该是以非 root 的用户在跑的,如果你考虑用 sudo 哪就要把 require tty 的限制去掉。

总得来说,这是一种安全风险,如果你的这个 systemd 服务有漏洞,黑客就拿到 roo shell。

建议你可以写一个文本文件,然后 crontab 去扫描这个文件发现内容为 1 就重启。

想再安全就可以考虑用 rsa 来防止张三李四之类的用户随意修改文本文件造成关机。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/650505

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX