Rails / tmp权限被拒绝

时间:2015-08-07 10:28:56

标签: ruby-on-rails ruby

我正在尝试在我的* nix开发机器上运行集成测试,但测试无法执行,因为权限被拒绝。

ActionView:Template:Error: Permission denied @  dir_s_mkdir - home/alan/app/tmp/cache/asssets/test

Rails版本是4.2.0,Ruby 2.2.2p95。我使用内置的Rails服务器(Webrick)。进程在用户alan下运行,而tmp /由我(alan)拥有。

rake tmp:cache:clear并重新启动服务器并没有做到这一点。

ls -alh outpuh如下:

drwxrwxr-x 14 alan alan 4,0K Kol  7 10:41 .
drwxr-xr-x 22 alan alan 4,0K Kol  7 09:10 ..
drwxrwxr-x  8 alan alan 4,0K Kol  4 14:37 app
drwxrwxr-x  2 alan alan 4,0K Kol  4 14:37 bin
drwxrwxr-x  2 alan alan 4,0K Kol  6 10:04 .bundle
drwxrwxr-x  5 alan alan 4,0K Kol  7 10:41 config
-rw-rw-r--  1 alan alan  153 Kol  4 14:37 config.ru
-rw-rw-r--  1 alan alan   16 Kol  4 14:45 contributors.txt
drwxrwxr-x  2 alan alan 4,0K Kol  7 11:59 db
-rw-rw-r--  1 alan alan  652 Kol  7 10:41 Gemfile
-rw-rw-r--  1 alan alan 5,3K Kol  7 10:41 Gemfile.lock
drwxrwxr-x  8 alan alan 4,0K Kol  7 10:42 .git
-rw-rw-r--  1 alan alan  512 Kol  7 10:41 .gitignore
-rw-rw-r--  1 alan alan 1,9K Kol  7 10:41 Guardfile
-rw-rw-r--  1 alan alan  299 Kol  7 10:41 layout_file
drwxrwxr-x  4 alan alan 4,0K Kol  4 14:37 lib
drwxrwxr-x  2 alan alan 4,0K Kol  7 11:28 log
drwxrwxr-x  2 alan alan 4,0K Kol  4 14:37 public
-rw-rw-r--  1 alan alan  249 Kol  4 14:37 Rakefile
-rw-rw-r--  1 alan alan  219 Kol  4 14:37 README.md
drwxrwxr-x  8 alan alan 4,0K Kol  7 10:41 test
drwxrwxrwx  6 alan alan 4,0K Kol  6 10:04 tmp
drwxrwxr-x  3 alan alan 4,0K Kol  4 14:37 vendor

3 个答案:

答案 0 :(得分:1)

tmplog个文件夹的权限设置为755777总是一个好主意,因为它是您的开发环境。

chmod -R 755 tmp

答案 1 :(得分:1)

可能你以某种方式拒绝了你的目录+x。只需将其设置为所有文件夹层次结构(对于您自己的用户):

chmod +x /home
chmod +x /home/alan
chmod +x /home/alan/app
rm -rf /home/alan/app/tmp
mkdir /home/alan/app/tmp
chmod +x /home/alan/app/tmp

答案 2 :(得分:0)

我已将 Ubuntu 18.04 更新到 20.04 然后我遇到了同样的问题并通过运行解决了

sudo sed -i "s/fs.protected_regular = .*/fs.protected_regular = 0/" /usr/lib/sysctl.d/protect-links.conf

并以此更新

sudo sysctl --system

然后我的案例问题解决了。