以非root用户身份运行Rails应用程序,但要求root密码才能访问文件

时间:2015-10-26 10:32:01

标签: ruby-on-rails ubuntu permissions user-permissions systemmanagement

我被赋予了使Rails应用程序的源文件不可读而不提供密码(root用户的密码)的任务,因此客户端将无法窥视应用程序(将在机器将保存在客户机的服务器室内。

我尝试将所有应用程序文件夹(以及文件和子文件夹等)的所有权更改为root,并为“其他”用户设置仅执行权限......但无济于事:我实现了非非root用户的文件可读性,但也无法运行该应用程序。

使用这些权限运行sudo rails ...无效。

该机器正在运行Ubuntu 14.04。该应用程序基于Rails 4.2和Ruby v2.2.1p85,实际上在nginx后面运行并使用unicorn(+ thin作为集成的Web服务器)...如果这有所作为。机器设置为启动并自动登录唯一的非root用户(比如company)而不需要密码,并立即启动独角兽。

我仍然没有尝试过一件事,因为我认为它可能过于侵入某项操作,正在创建一个新的用户帐户,比如client,让机器自动登录这个新帐户。在将company作为应用文件和文件夹的所有者时,我会将Ubuntu设置为以与登录的用户不同的用户身份运行独角兽(即companyclient)并且无法在阅读器中打开文件。

如果可能的话,我怎样才能达到目标?

1 个答案:

答案 0 :(得分:0)

通过更改所有文件的权限来实现第一种方法后,为什么不尝试设置the set-user-ID-on-execution bit

chmod -R 4701 <app_dir>

这会阻止&#34;其他&#34;用户从阅读中将允许他们执行,但在执行时他们将获得所有者的特权(这是set-user-ID的利益。)

P.S。我不知道这对你有用,但值得尝试。