【问题标题】:chown command does not work to give permissons for sqlite databasechown 命令无法为 sqlite 数据库授予权限
【发布时间】:2020-10-12 19:05:45
【问题描述】:

我有一个部署在数字海洋上的 django 应用程序。

当我尝试使用写入数据库的函数时,出现权限错误。
在 digitalocean 网站上,我找到了以下解决方案;chown django:django db.sqlite3 我服务器上的用户名不是 django,所以我用我的用户名运行了命令。

没有改变。 我能做什么?

编辑:
运行 chown www-data:www-data db.sqlite3 因为我认为 www-data 是运行服务器的用户,但仍然没有任何变化。

【问题讨论】:

  • 服务器运行的用户是什么。这通常是 not 用户名。作为一项安全措施,它使用具有特定权限的单独用户,该用户应该是文件的所有者。
  • 我启动服务器的用户是root用户,但我认为他无论如何都有权限
  • 是的,但通常 root 用户将永远是运行 Django 服务器的用户(root 用户通常会捕获端口,并在 much 下运行 Django 服务器更多受限用户)。如果它是 root 用户,那么一个小的安全漏洞可能意味着有人可以完全接管服务器。
  • nginx:工作进程由 www-data 运行,但授予此用户权限无济于事
  • 我必须重新启动任何东西吗?尝试重新启动 gunicorn 和 nginx 但没有任何改变

标签: python django sqlite nginx digital-ocean


【解决方案1】:

我想通了。
授予数据库权限是不够的,但我还必须授予数据库所在文件夹的权限。
所以解决办法:

chown user:user djangodir
chown user:user djangodir/db.sqlite3

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2020-12-07
    • 2021-04-16
    • 2014-08-16
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多