如何从Rails以root身份运行命令?

时间:2013-05-25 21:55:40

标签: ruby-on-rails ruby ipc

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

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

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

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

2 个答案:

答案 0 :(得分:3)

sudo -i

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

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

希望能帮助他人。

答案 1 :(得分:2)

你需要做#2。

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

编写代码作为守护程序运行也可以,但是调试起来比较困难。

在任何一种情况下,您都必须通过未经授权的访问来防止黑客攻击。一个单据和您的系统将受到损害。