5

我正在考虑编写一个 Rails 应用程序来管理像 cPanel 这样的服务器。

最困难的部分是选择最佳方式来运行需要 root 权限的命令,例如adduser,或执行需要其他用户权限的操作,例如更改 nginx 配置文件。

我只知道实现这一目标的两种方法:

  1. 我可以编写一个独立的守护进程,它将以 root 身份运行并完成所有工作,通过 IPC 或类似的方式接收命令。
  2. 以 root 用户身份运行 Rail 的服务器,并从中执行任何操作或执行命令/bash 脚本。

这些方法中哪一种最好?是否存在另一种方法?

4

2 回答 2

4

sudo -i

我尝试做类似的事情,sudo bundle exec rails console但它不会以 root 身份运行它,所以当我尝试从控制台创建目录时,它让我知道我没有正确的权限。

但是,使用sudo -i它会使您以 sudo root 用户身份进入“交互式控制台”,然后您可以bundle exec rails console以 sudo root 用户身份运行。

希望对其他人有所帮助。

于 2015-07-16T23:29:49.960 回答
3

你需要做#2。

以 root 身份启动您的应用程序,您将能够以 root 身份执行所有操作。

编写代码以作为守护程序运行也可以,但更难调试。

在任何一种情况下,您都必须防止通过未经授权的访问进行黑客攻击。一次失误,您的系统就会受到损害。

于 2013-05-26T04:49:27.860 回答