【问题标题】:sqlite3 error "attempt to write a readonly database"sqlite3 错误“尝试写入只读数据库”
【发布时间】:2017-09-27 15:12:47
【问题描述】:

我敢肯定,对于那些了解 python 的人来说,这将是一个愚蠢的问题,但我正在尝试调试 python 脚本,但我找不到任何东西。

我收到以下错误:

(sqlite3.OperationalError) 尝试写入只读数据库 [SQL: u'INSERT INTO samples (file_size, file_type, md5, crc32, sha1, sha256, sha512, ssdeep) VALUES (?, ?, ?, ?, ? , ?, ?, ?)']

我知道要解决这个问题,我必须将数据库访问权限更改为写入,但我不知道该数据库位于何处。数据库是这样在脚本中创建的:

db = Database()

这些是进口:

import argparse
import fnmatch
import logging
import os
import random
import sys

try:
    import requests
    HAVE_REQUESTS = True
except ImportError:
    HAVE_REQUESTS = False

我得到错误的那一行是下面的一行

db.add_path(...);

此文件是 Cuckoo Droid 项目的一部分,具体是提交要分析的 APK 的脚本。我不知道数据库是位于 Android 模拟器还是主机中。如果是这样,我想知道该数据库的位置,以便更改数据库的权限以提供写访问权限。任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: android python sqlite ubuntu-14.04


    【解决方案1】:

    我正在寻找的数据库位于 cuckoo/ 目录中。特别是在 db/ 文件夹中。为了解决我的问题,我所做的是递归地更改文件夹的权限:

    sudo chmod 777 -R db
    

    【讨论】:

    • 执行递归 chmod 777 非常危险。应该注意的是,这是一件危险的事情,因为它有效地删除了所有文件和子目录的所有基于权限的安全性,并且会破坏例如ssh!
    猜你喜欢
    • 2017-04-03
    • 1970-01-01
    • 2016-10-20
    • 2015-03-24
    • 2015-10-27
    • 2018-05-23
    • 2021-09-11
    • 2017-07-17
    • 1970-01-01
    相关资源
    最近更新 更多