python-sploitkit icon indicating copy to clipboard operation
python-sploitkit copied to clipboard

peewee.OperationalError: attempt to write a readonly database

Open dhondta opened this issue 5 years ago • 1 comments

#!/usr/bin/python3
# main.py
from sploitkit import FrameworkConsole

if __name__ == '__main__':
    FrameworkConsole(
        "MySploit",
        # configure your console settings here
    ).start()

Result:

$ python3 main.py 

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/sploitkit-0.3.2-py3.6.egg/sploitkit/core/components/store.py", line 33, in get
    db = [_ for _ in self.__pool if _.path == path][0]
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2957, in connect
    self._state.set_connection(self._connect())
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3293, in _connect
    self._add_conn_hooks(conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3303, in _add_conn_hooks
    self._set_pragmas(conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3318, in _set_pragmas
    cursor.execute('PRAGMA %s = %s;' % (pragma, value))
sqlite3.OperationalError: attempt to write a readonly database

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3019, in execute_sql
    cursor = self.cursor(commit)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3003, in cursor
    self.connect()
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2960, in connect
    self._initialize_connection(self._state.conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2796, in __exit__
    reraise(new_type, new_type(*exc_args), traceback)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 183, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2957, in connect
    self._state.set_connection(self._connect())
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3293, in _connect
    self._add_conn_hooks(conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3303, in _add_conn_hooks
    self._set_pragmas(conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3318, in _set_pragmas
    cursor.execute('PRAGMA %s = %s;' % (pragma, value))
peewee.OperationalError: attempt to write a readonly database

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 7, in <module>
    "MySploit",
  File "/usr/local/lib/python3.6/dist-packages/sploitkit-0.3.2-py3.6.egg/sploitkit/core/console.py", line 480, in __init__
    super(FrameworkConsole, self).__init__(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/sploitkit-0.3.2-py3.6.egg/sploitkit/core/console.py", line 90, in __init__
    self.__init(**kwargs)
  File "/usr/local/lib/python3.6/dist-packages/sploitkit-0.3.2-py3.6.egg/sploitkit/core/console.py", line 154, in __init
    self.reset()
  File "/usr/local/lib/python3.6/dist-packages/sploitkit-0.3.2-py3.6.egg/sploitkit/core/console.py", line 285, in reset
    Console.store = Console._storage.get(p)
  File "/usr/local/lib/python3.6/dist-packages/sploitkit-0.3.2-py3.6.egg/sploitkit/core/components/store.py", line 49, in get
    db.create_tables(self.models, safe=True)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3206, in create_tables
    model.create_table(**options)
  File "/usr/local/lib/python3.6/dist-packages/sploitkit-0.3.2-py3.6.egg/sploitkit/core/model.py", line 50, in create_table
    super(Model, cls).create_table(**options)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 6497, in create_table
    cls._schema.create_all(safe, **options)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 5647, in create_all
    self.create_table(safe, **table_options)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 5502, in create_table
    self.database.execute(self._create_table(safe=safe, **options))
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3034, in execute
    return self.execute_sql(sql, params, commit=commit)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3028, in execute_sql
    self.commit()
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2796, in __exit__
    reraise(new_type, new_type(*exc_args), traceback)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 183, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3019, in execute_sql
    cursor = self.cursor(commit)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3003, in cursor
    self.connect()
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2960, in connect
    self._initialize_connection(self._state.conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2796, in __exit__
    reraise(new_type, new_type(*exc_args), traceback)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 183, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 2957, in connect
    self._state.set_connection(self._connect())
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3293, in _connect
    self._add_conn_hooks(conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3303, in _add_conn_hooks
    self._set_pragmas(conn)
  File "/usr/local/lib/python3.6/dist-packages/peewee.py", line 3318, in _set_pragmas
    cursor.execute('PRAGMA %s = %s;' % (pragma, value))
peewee.OperationalError: attempt to write a readonly database

dhondta avatar Dec 12 '19 20:12 dhondta

This occurs after having used main.py with sudo. In this case, store.db has not the right permission anymore and the OperationalError is raised when restarting main.py without privileges.

dhondta avatar Dec 12 '19 20:12 dhondta