Apache2、SSH 和类似的工具在启动和以图形方式登录到设备时似乎不起作用(除非重新启动)。为了让它工作,我必须输入/etc/init.d/apache2 restart
,并对 SSH 执行相同的操作。我计划让我的设备不带显示器或键盘。我自动设置登录,制作了一个重新启动服务的 shell 脚本,并将其放入~/.kde/Autostart
.
不起作用的原因是我需要 root 权限才能重新启动服务。我需要在没有任何输入或监视器的情况下重新启动它。我怎样才能允许非 root 用户重新启动 apache2,或者允许 root 用户无需密码来执行此可执行文件?
我还尝试编辑 sudoers 文件并添加:
username ALL = NOPASSWD: /etc/init.d/apache2
username ALL = NOPASSWD: /etc/init.d/ssh
username ALL = /etc/init.d/apache2
username ALL = /etc/init.d/ssh
它仍然说尝试时拒绝许可
Debian 8(杰西)
答案1
您可以使用正在运行的命令的sudo
with来执行此操作。nopasswd
但在我看来,您似乎正在尝试为您可能应该解决的更深层次问题创建解决方法。
答案2
我终于找到了一种让 echo 输入密码的方法(因为唯一的问题是我没有键盘)。
#!/bin/bash
echo -e "password\n" | sudo -S command --flag argument
启用-e
反斜杠转义,并且 sudo-S
启用 STD 输入(因此来自 echo 的输入是管道化的)。根据手册,-S
输入需要以\n
转义字符结尾