【发布时间】:2011-12-02 18:11:25
【问题描述】:
我有以下环境:
- 我有一台带有
nginx、passenger、ruby 1.9.2、ror 3.*、postgresql的 Ubuntu 10.10 服务器(db不在游戏中) - 我有一个位于
/var/www/(示例文件夹)的应用程序 -
我的机架用户是
www-data(nginx也是用户)www-数据 21977 0.1 7.2 53324 44420 ? Sl Dec01 2:21 机架:/var/www/
www-数据 1187 0.0 0.4 10620 2468 ? S Nov24 2:47 nginx:工作进程 -
我的文件夹
/var/www/public属于www-data并且在755中drwxr-xr-x 7 www-data www-data 4096 2011-12-02 16:13 公开
我收到以下错误(相关部分):
Errno::EACCES in AnswerLinesController#export_csv
Permission denied - public/survey_70_result_csv.csv
app/controllers/answer_lines_controller.rb:647:in `initialize'
app/controllers/answer_lines_controller.rb:647:in `open'
app/controllers/answer_lines_controller.rb:647:in `export_csv'
然后我将我的文件夹 /public 转到 775,结果相同。
然后我将我的文件夹/public 转到777,工作!
为了好玩,我尝试再次将我的文件夹/public 转为755。它正在工作。
- Ruby(或 Ruby On Rails?)如何实际管理权限/权限?
- 是否有任何类型的权限或写入缓存?
- 在磁盘上写入的实际用户是谁? Ruby的用户? (在这种情况下,
www-data?) - 如何解释它首先在
755中不起作用,然后在777中起作用,最后在755中起作用的事实?谁在制造麻烦?会混淆的文件系统层或 Ruby 的写入磁盘模块?
还是 Ruby 中的错误?
【问题讨论】:
-
survey_70_result_csv.csv的所有权和权限是什么? -
穆,这是个好问题,这是答案:-rw-r--r-- 1 www-data www-data 7962 2011-12-03 02:59survey_70_result_csv.csv跨度>
标签: ruby linux ruby-on-rails-3 file-io permissions