我的缓存解决方案是否安全?

时间:2012-02-21 04:38:52

标签: ruby-on-rails security ubuntu chmod

我在Nginx和Passenger上的Ubuntu 10.04上运行Rails 3.1。

在我的日志中,我可以看到以下内容:

cache error: Permission denied - /var/www/redmeetsblue/releases/20120221032538/tmp/cache/B27

我通过更改用户名来解决问题(来自google advice),但我不确定安全隐患。谁没人?这样安全吗?

/var/www/redmeetsblue/current/tmp/cache
    total 16K
    drwxr-xr-x  4 www-data root 4.0K 2012-02-20 22:27 .
    drwxr-xr-x  3 root     root 4.0K 2012-02-20 22:26 ..
    drwxr-xr-x 54 www-data root 4.0K 2012-02-20 22:27 assets
    drwxr-xr-x  3 www-data root 4.0K 2012-02-20 22:27 sass
    root@y:/var/www/redmeetsblue/current/tmp# cd b27
    -bash: cd: b27: No such file or directory
    root@y:/var/www/redmeetsblue/current/tmp# cd B27
    -bash: cd: B27: No such file or directory
    root@y:/var/www/redmeetsblue/current/tmp# chown -R nobody cache
    root@y:/var/www/redmeetsblue/current/tmp# ls -alh /var/www/redmeetsblue/current/tmp/cache
    total 16K
    drwxr-xr-x  4 nobody root 4.0K 2012-02-20 22:27 .
    drwxr-xr-x  3 root   root 4.0K 2012-02-20 22:26 ..
    drwxr-xr-x 54 nobody root 4.0K 2012-02-20 22:27 assets
    drwxr-xr-x  3 nobody root 4.0K 2012-02-20 22:27 sass

更改用户后,我的缓存正在运行,但我不确定它是否安全。请参阅工作缓存..

cache: [GET /assets/grid.png] stale, valid, store
cache: [GET /dashboards] miss
cache: [GET /assets/grid.png] stale, valid, store

1 个答案:

答案 0 :(得分:2)

常用作unix守护程序所有者的nobody用户,以便他们有足够的权限来完成他们的工作,但不能太多,以至于可能具有破坏性的顽皮。在用户帐户下运行守护程序,它将无法例如写入syslogs。在root等特权帐户下运行它会为进程提供执行此操作的权限,但也为其他所有权限提供权限。因此,如果您的守护进程受到攻击,攻击者可以更自由地拥有您的服务器。服务器也可以以root身份启动(例如绑定到TCP端口80所必需的),然后放弃对用户nobody的权限。