我正在尝试在我的* 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
答案 0 :(得分:1)
将tmp
和log
个文件夹的权限设置为755
或777
总是一个好主意,因为它是您的开发环境。
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
然后我的案例问题解决了。