Rails /tmp权限被拒绝

3

我在*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输出如下:

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

app中添加ls -l输出。 - EugZol
3个回答

1

在开发环境中,对于 tmplog 文件夹设置权限为 755777 总是一个好主意。

chmod -R 755 tmp

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

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

然后我的问题得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接