处理django.db.utils.OperationalError: attempt to write a readonly database错误

news/2025/10/28 19:14:23/文章来源:https://www.cnblogs.com/gccbuaa/p/19172539

打开浏览器访问learning_log登录页面,出现如下错误:

执行如下命令:
[root@baoguo learning_log]# ll db.sqlite3
-rwxrwxrwx. 1 zhang zhang 147456 Oct 2 16:11 db.sqlite3
[root@baoguo learning_log]# ll -d .
drwxrwxrwx. 12 zhang zhang 4096 Oct 2 16:11 .
显示文件和目录权限为777,任何用户有写入的权限,问题不出在这儿。

cat /var/log/httpd/error_log
[Thu Oct 02 14:31:43.373497 2025] [wsgi:error] [pid 7466:tid 7626] [client 192.168.1.44:55482]django.db.utils.OperationalError: attempt to write a readonly database,referer: http://192.168.1.101/accounts/register/
apache日志文件显示写只读数据库被拒绝

[root@baoguo accounts]# ausearch -m AVC -ts recent
<no matches>
搜索审计信息显现找不到selinux访问拒绝记录

[root@baoguo learning_log]# man semodule
EXAMPLE
# Turn on all AVC Messages for which SELinux currently is "dontaudit"ing.
$ semodule -DB
[root@baoguo learning_log]# semodule -DB
该步是关键:-DB选项打开AVC审计信息开关

[root@baoguo learning_log]# ausearch -m AVC -ts recent
type=AVC msg=audit(1759392419.488:4923): avc: denied { setattr } for pid=8104 comm="rpm" name="rpmdb.sqlite-shm" dev="dm-0" ino=67240075 scontext=system_u:system_r:setroubleshootd_t:s0 tcontext=system_u:object_r:rpm_var_lib_t:s0 tclass=file permissive=0
有AVC记录了

[root@baoguo learning_log]# ausearch -m AVC -ts recent | audit2why
type=AVC msg=audit(1759392468.280:4934): avc: denied { net_admin } for pid=7462 comm="httpd" capability=12 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:httpd_t:s0 tclass=capability permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
从AVC记录分析拒绝原因和解决方法

[root@baoguo learning_log]# grep httpd /var/log/audit/audit.log | audit2allow -M net_admin
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i net_admin.pp
生成允许访问策略

[root@baoguo learning_log]# semodule -i net_admin.pp
安装策略模块

[root@baoguo learning_log]# cat net_admin.te
module net_admin 1.0;
require {
type user_home_t;
type httpd_t;
class capability net_admin;
class dir write;
}
#============= httpd_t ==============
allow httpd_t self:capability net_admin;
allow httpd_t user_home_t:dir write;
显示.te(type enforement)文件定义的具体规则


解决该问题的关键步骤是执行semodule -DB命令以打开AVC审计开关

我的操作系统平台是centos stream 9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/949070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10.28代码大全2

10.28代码大全2今天翻了《代码大全2》的“前期准备”章,原来写代码前花半小时理需求、画个简单架构图,比上来就敲键盘省时间多了,之前总踩“写一半发现逻辑错”的坑,现在算找到原因了。

[GESP202509 二级] 菱形

[GESP202509 二级] 菱形GESP202509 二级 菱形 题目描述 小 A 想绘制一个菱形。具体来说,需要绘制的菱形是一个 n 行 n 列的字符画,n 是一个大于 1 的奇数。菱形的四个顶点依次位于第 1 行、第1列、第 n 行、第 n 列的…

别再空谈企业架构!TOGAF的4A模型让你的技术投入至少省50%!

4A架构是技术管理者解决"系统混乱、业务脱节、数据不通"的实用工具文 / 勇哥 原创文章,转载请联系授权在上一篇文章企业架构标准深度解析:TOGAF、Zachman、ArchiMate 实战指南中,我们讲述了常见的企业架构…

linux 配置vnc

rpm -qa|grep vnc[root@dmc1 ~]# rpm -qa|grep vnc tigervnc-server-minimal-1.10.1-8.p01.ky10.x86_64 tigervnc-1.10.1-8.p02.ky10.x86_64 tigervnc-server-1.10.1-8.p02.ky10.x86_64么没有通过下面命令安装 yum ins…

2025 ICPC 成都 游记

简单写一篇成都站的流水张 25日 day 0 早上 10 点多从学校打车去赛场体育馆签到,坐一个多小时的车也是要坐吐了。在签到处玩游戏拿了只奶龙。不得不说 UESTC 出手还是阔绰的,直接给每队发了 200 美团卡。签完到回酒店…

基于PSO粒子群优化算法的64QAM星座图的最优概率整形matlab仿真,对比PSO优化前后整形星座图和误码率

1.算法仿真效果仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要 64QAM是一种高阶调制方式,星座图中有64个星座点,每个星座点对应6比特信息。传统的74QAM采用均匀分布。通过改变改变星座图不同位置符…

第七周第二天7.2

所用时间:270分钟 代码量(行):352 了解到的知识点:

apisix流量高峰期服务卡住问题

apisix流量高峰期服务卡住问题apisix,网络抓包现象描述 在流量高峰期,apisix偶现服务卡住,部分请求无法经过apisix转发。 分析步骤 1.起初线上服务出现异常,开发优先关注解决线上问题,发现降低业务流量之后,apisi…

第七周第一天7.1

所用时间:315分钟 代码量(行):198 了解到的知识点:

第六周第五天6.5

所用时间:180分钟 代码量(行):113 了解到的知识点:

在vue-markdown-render中解析LaTeX公式

<VueMarkdown:options="{html: true}":plugins="markdownPlugins"class="markdown":source="message.content" />import texmath from markdown-it-texmath import * a…

完整教程:IP 地址管理:IPv4 和 IPv6 地址规划、子网划分与 CIDR

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

102302107_林诗樾_数据采集与融合技术实践作业1

作业① 1)、上海软科2020大学排名爬取实验(requests+BeautifulSoup) import requests from bs4 import BeautifulSoup import warnings warnings.filterwarnings("ignore") # 忽略SSL等无关警告def craw…

extern C作用

extern "C"作用是c++中一个重要的关键字,用于指定函数或变量按照C语言的命名和调用约定来编译和链接。

Day25-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Threadcase-多线程讲到等待唤醒机制的一半

多线程 进程 进程是程序的基本执行实体 线程 线程是操作系统能够进行运算调度的最小单位,它被包含在进程中,是进程中实际运行的基本单位 应用软件中相互独立,可以独立运行的功能 多线程就是同时运行多个子程序,提高…

C++primer 类的静态成员

什么是静态存储方式 静态存储方式是程序编译时分配固定内存空间的机制,其存储位置及大小在程序运行前确定并保持不变,直至程序终止。和动态存储的区别:动态存储根据需求动态分配内存(如函数参数),而静态存储在编…

CSP-S NOIP 2025 备考

长 \(n\) 序列 \(a\),\(a_i\) 可以把自己的值往左右的 \(a\) 转移。最少多少次转移使得所有数相同。\((x,y,k)\) 代表 \(a_x\) 给出 \(d\) 的值给 \(a_y\)。保证有解,并且要求构造字典序最小的一组解。\(n\le3e5\)。…

netcore vue socket.io

netcore vue socket.io 一、后端创建项目 # 添加解决方案 > dotnet new sln -n Apricot.Socket.IO# 添加 asp net core 项目 > dotnet new web -n Apricot.Socket.IO# 将 web 项目添加至解决方案 > dotnet sl…