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