我正在开发一个网站,其中生成一些服务并需要将其放置在系统文件夹中,并且这些服务可能还需要使用 systemctl 命令启动/停止。
将服务放入系统文件夹和运行 systemctl 的两个命令都需要使用 sudo,在不暴露 root 密码的情况下从网站执行此类命令的安全/可靠方法是什么。
答案1
一种方法是配置 sudo,使这些特定命令不需要网络服务器用户的密码。man sudoers
详情请参阅。如有必要,将命令包装在 shell 脚本中,然后允许 root 执行sudoers
.
从您的描述来看,这些命令似乎不需要参数(只需要启动或停止固定数量的服务)。如果他们这样做,那么请三次检查您的参数验证 - 如果您在那里犯了错误,那么这就是获得系统 root 访问权限、密码或无密码的方法。