【问题标题】:Rails /tmp permission deniedRails /tmp 权限被拒绝
【发布时间】:2015-10-30 18:28:18
【问题描述】:

我正在尝试在我的 *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输出。

标签: ruby-on-rails ruby


【解决方案1】:

我已将 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

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

【讨论】:

    【解决方案2】:

    您可能以某种方式拒绝了您目录中的+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
    

    【讨论】:

      【解决方案3】:

      最好将tmplog 文件夹的权限设置为755777,因为这是您的开发环境。

      chmod -R 755 tmp
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-04
        • 2020-04-03
        • 2014-06-18
        相关资源
        最近更新 更多