AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[sqlite](server)

Martin Hope
Alexx Roche
Asked: 2022-03-19 03:57:50 +0800 CST

如何安全地阻止 postfix 对 sqlite 数据库的组权限挑剔?

  • 1

背景

我使用 sqlite 设置了一个示例 postfix 服务器来存储别名和邮箱详细信息,(这样它们就可以实时更新,并拥有一个单一的事实来源作为数据库。)

为了安全起见,我在可能的情况下运行 chroot 的 postfix 部分,因此数据库(mail.sqlite)位于 /var/lib/postfix/ 中(一切正常。)

所需功能

我编写了一个 Web 前端来让用户添加新的电子邮件地址。Web 前端作为 www-data 运行。

我将 www-data 添加到 postfix 组,以便chmod g+rw /var/lib/postfix/mail.sqlite /var/lib/postfix/使 Web 前端能够更新数据库。

电子邮件进进出出。Web 前端可以创建远程更新删除别名。我重新启动 postfix 并检查日志:

postfix/postfix-script[26524]: warning: group or other writable: /var/lib/postfix/.
postfix/postfix-script[26525]: warning: group or other writable: /var/lib/postfix/./mail.sqlite

如果我chmod g-w /var/lib/postfix/mail.sqlite让 postfix 很高兴,但我的 Web 前端无法添加新的别名。

我可以有一个 cron 脚本来用权威的 /var/www/admin/app/mail.sqlite 替换 /var/lib/postfix/mail.sqlite,但这闻起来像竞争条件,或者至少是不雅的。

(我想知道为什么配置为时,postfix 将数据库称为“/var/lib/postfix/./mail.sqlite” dbpath = /var/lib/postfix/mail.sqlite?)

问题

如何让我的 cgi Web 前端写入访问 postfix 的数据库,而不将其作为postfix运行并保持 postfix 满意?(我认为我必须在添加 SELinux 策略之前解决这个问题。)

编辑:

我有 main.cf

virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_mailbox.cf
virtual_alias_maps = sqlite:/etc/postfix/sqlite_alias.cf
virtual_mailbox_domains = sqlite:/etc/postfix/sqlite_domains.cf

并尝试过proxymap:

virtual_mailbox_maps = proxy:sqlite:/etc/postfix/sqlite_mailbox.cf
virtual_alias_maps = proxy:sqlite:/etc/postfix/sqlite_alias.cf
virtual_mailbox_domains = proxy:sqlite:/etc/postfix/sqlite_domains.cf

两者似乎同样适用于电子邮件处理,但在重新启动后缀后,两者仍然记录:

postfix/postfix-script[957]: warning: group or other writable: /var/lib/postfix/.             
postfix/postfix-script[958]: warning: group or other writable: /var/lib/postfix/./mail.sqlite
permissions postfix sqlite
  • 1 个回答
  • 49 Views
Martin Hope
Hart Simha
Asked: 2022-02-07 23:02:40 +0800 CST

Linux/ext4/sqlite:可以在写入文件时触摸文件以导致竞争条件吗?

  • 8

对于上下文:我需要能够可靠地更新某些 sqlite DB 文件上的时间戳,这些文件会在 ext4 文件系统上获得间歇性更新。

写入数据库时​​使用touch命令(更新最后修改时间)会失败,甚至更糟,导致数据丢失吗?

linux ext4 sqlite
  • 1 个回答
  • 798 Views
Martin Hope
Codejoy
Asked: 2021-10-13 15:21:13 +0800 CST

脚本备份 sqlite 数据库,当作为 cron 运行时,数据库和名称被破坏

  • 0

我有一个 crontab:

 * * * * * /home/ipa/web/backup.sh > /dev/null 2>&1

(不,它不会每分钟都运行,只是在这里测试)

backup.sh 有这个:

#!/usr/bin/env sh



sqlite3 /home/ipa/web/ipa_django/mysite/db.sqlite3 ".backup 'backup_file.sqlite3'"
src="/home/ipa/web/backup_file.sqlite3"
let seconds=$(date +%H)*3600+$(date +%M)*60+$(date +%S)
echo $seconds
filename="db.sqlite3"
echo $filename.$seconds
dest="/home/ipa/web/db_backups/"$filename.$seconds
cp  $src $dest
cd /home/ipa/web/db_backups
tar -cvzf ipadbbackup.tar.gz $filename.$seconds
cd /home/ipa/web/
cp /home/ipa/web/db_backups/ipadbbackup.tar.gz ipadbbackup.tar.gz
rm /home/ipa/web/db_backups/$filename.$seconds
rm /home/ipa/web/db_backups/ipadbbackup.tar.gz
#rm "$srcfile"
/usr/bin/bash start-app.sh;
echo "Running email backup"
python2.7 backup_via_email.py
rm ipadbbackup.tar.gz

我的想法是我将数据库复制到暂存区域,将其压缩并复制到另一个 .py 文件可以找到它的位置,然后通过电子邮件将其作为备份发送出去。

问题是:

如果我从它所在的位置运行此脚本:/home/ipa/web/

带有 ./backup.sh

效果很好,我的电子邮件中的文件效果很好:db.sqlite3.77627

或者什么不是......问题是当它作为cron运行时文件不完整并且文件名是:

db.sqlite3.

我无法弄清楚它作为 cron 运行会导致它基本上失败吗?tar 中的文件也小了 2.1k?所以不知道发生了什么......甚至不知道在哪里看。

ubuntu cron python sqlite
  • 1 个回答
  • 353 Views
Martin Hope
Boppity Bop
Asked: 2021-03-08 07:42:51 +0800 CST

如果文件已更改,则运行(cron)作业

  • 0

我需要通过每天运行一次命令来备份实时 SQLite 数据库。仅当 db 文件自上次备份以来已更改时。如何在 Centos 8 上实现?

backup centos cron sqlite centos8
  • 1 个回答
  • 243 Views
Martin Hope
LeRouteur
Asked: 2020-11-03 04:09:03 +0800 CST

SQLSTATE[HY000]:一般错误:8 次尝试写入只读数据库

  • 1

(也许这个问题适合 SO,但我认为它与我的代码无关)。

我使用 SQLite3 作为我的 Web 应用程序的数据库引擎。

我刚刚将它部署在生产服务器上,但它没有按预期工作。

我正在使用 PDO(一个 PHP DB 接口)来访问这个 DB,但是每当我尝试在其中写一些东西时,我都会收到错误消息:

SQLSTATE[HY000]: General error: 8 attempt to write a readonly database

生产服务器是一个运行 Httpd(所以 Apache)的 Centos 8。我已将整个文件夹的权限设置为 777(这只是一个测试,不要怪我),但仍然出现错误。

我读过很多关于这个错误的东西,但没有一个对我有用。

有趣的是,运行时:

php -r 'var_dump(
  $db=new PDO("sqlite:/var/www/myProjetFolder/db/myProjetDb.sqlite"),
  $q=$db->query("SELECT * FROM sqlite_master"),
  $q->fetchAll()); '

在 Web 服务器的根目录下,我得到了我的数据库的内容,所以我猜权利是好的。

准确地说,我的项目存储在/var/www/myProjectFolder/.

我暂时没有创建任何 vHost,我只是编辑了 httpd.conf 并更改了DocumentRoot.

为什么会这样?

centos php sqlite
  • 1 个回答
  • 3220 Views
Martin Hope
tater
Asked: 2020-07-26 06:11:38 +0800 CST

Postfix + SASL SQLite 在 CentOS 7 上给出 auxprop 错误

  • 0

尝试在 CentOS 7 上的 Postfix 中使用 SQLite 进行 SASL 身份验证时收到unknown password verifier(s) auxprop错误消息。似乎找不到 SQLite SQL 引擎。

内容/etc/sasl2/smtp.conf:

log_level: 127
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
sql_engine: sqlite
sql_database: /etc/postfix/sasl_db
sql_select: SELECT password FROM users WHERE user = '%u'

连接记录在/var/log/maillog:

Jul 25 08:55:43 smtp2 postfix/smtpd[5049]: connect a.b.c.d.myisp.net[a.b.c.d]
Jul 25 08:55:45 smtp2 postfix/smtpd[5049]: warning: SASL authentication problem: unknown password verifier(s) auxprop
Jul 25 08:55:45 smtp2 postfix/smtpd[5049]: warning: SASL authentication failure: Password verification failed
Jul 25 08:55:45 smtp2 postfix/smtpd[5049]: warning: a.b.c.d.myisp.net[a.b.c.d]: SASL PLAIN authentication failed: no mechanism available
Jul 25 08:55:46 smtp2 postfix/smtpd[5049]: warning: SASL authentication problem: unknown password verifier(s) auxprop
Jul 25 08:55:46 smtp2 postfix/smtpd[5049]: warning: a.b.c.d.myisp.net[a.b.c.d]: SASL LOGIN authentication failed: no mechanism available
Jul 25 08:55:51 smtp2 postfix/smtpd[5049]: disconnect from a.b.c.d.myisp.net[a.b.c.d]

中有一个提示/var/log/messages:

Jul 25 08:55:38 smtp2 systemd: Starting Postfix Mail Transport Agent...
Jul 25 08:55:38 smtp2 systemd: Started Postfix Mail Transport Agent.
Jul 25 08:55:43 smtp2 postfix/smtpd[5049]: SQL engine 'sqlite' not supported
Jul 25 08:55:43 smtp2 postfix/smtpd[5049]: auxpropfunc error no mechanism available

我尝试替换sqlite为sqlite3(并重新启动 Postfix),结果相同。

到目前为止,我最好的猜测是我错过了一个 rpm,但无法确定它可能是什么。

smtp2:/# rpm --query -a | grep -ie sqlite -ie sasl -ie postfix
cyrus-sasl-sql-2.1.26-23.el7.x86_64
cyrus-sasl-md5-2.1.26-23.el7.x86_64
sqlite-3.7.17-8.el7_7.1.x86_64
cyrus-sasl-lib-2.1.26-23.el7.x86_64
postfix-2.10.1-9.el7.x86_64
cyrus-sasl-2.1.26-23.el7.x86_64
libsqlite3x-20071018-20.el7.x86_64
cyrus-sasl-plain-2.1.26-23.el7.x86_64
smtp2:/# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)

我是否缺少所需的 rpm,或者更一般地说,我该如何解决此错误?

postfix sqlite centos7 sasl
  • 1 个回答
  • 371 Views
Martin Hope
Sven
Asked: 2020-06-25 11:43:13 +0800 CST

服务器运行时如何使用 django shell?

  • 0

我有一个使用 gunicorn 和 nginx 部署在 digitalocean 上的 django 服务器。我遵循了一个教程,我认为是这个。
由于教程的原因,我只在 virtualenv 中安装了 django。
当我开发服务器时,我曾经在 shell 中做一些事情,比如检查 sqlite 数据库中的东西。
在服务器运行时使用 shell 是一个好主意,还是会破坏一些东西?如何使用 shell,我应该激活 venv 和 typepython manage.py shell吗?

感谢您的帮助并保持健康!

django nginx sqlite gunicorn digital-ocean
  • 1 个回答
  • 153 Views
Martin Hope
Mohan
Asked: 2017-05-23 07:08:05 +0800 CST

SQLite3 正在使 JVM 崩溃

  • 0

当我运行我的应用程序时,我正在使用 sqlite-jdbc 3.7.2,SQLLite 正在使 JVM 崩溃。它没有持续发生,但发生了两次。请帮助查找问题。

A fatal error has been detected by the Java Runtime Environment:
SIGSEGV (0xb) at pc=0x01c60d18, pid=5731, tid=5888912

JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)
Java VM: Java HotSpot(TM) Server VM (25.65-b01 mixed mode linux-x86 )
Problematic frame:
C  [sqlite-3.7.2-libsqlitejdbc.so+0x34d18]

Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

If you would like to submit a bug report, please visit:
  http://bugreport.java.com/bugreport/crash.jsp
The crash happened outside the Java Virtual Machine in native code.
See problematic frame for where to report the bug.

---------------  T H R E A D  ---------------

Current thread (0x0a9b7000):  JavaThread "Event Handler" daemon [_thread_in_native, id=17400, stack(0x0054d000,0x0059e000)]

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x00000044

Registers:
EAX=0x00000000, EBX=0x01c9bfc4, ECX=0x00000000, EDX=0x00000000
ESP=0x0059c784, EBP=0x0059c798, ESI=0x0a766b80, EDI=0x011d1280
EIP=0x01c60d18, EFLAGS=0x00010216, CR2=0x00000044

Top of Stack: (sp=0x0059c784)
0x0059c784:   0a766b80 0059c798 01c60d10 01c9bfc4
0x0059c794:   00000000 0059c7b8 01c60dfa 01c9b860
0x0059c7a4:   011d1280 0059c7b8 01c60de7 01c9bfc4
0x0059c7b4:   0a9b7138 0059c7e8 01c34268 0a766b80
0x0059c7c4:   00000004 0059c808 0a9b7000 00000000
0x0059c7d4:   00000006 0a9b7000 00000000 0059c804
0x0059c7e4:   0a9b7000 0059c818 a957f81b 0a9b7138
0x0059c7f4:   0059c804 0a766b80 00000000 00000004 

Instructions: (pc=0x01c60d18)
0x01c60cf8:   1b 1d fd ff 81 c3 c8 b2 03 00 85 c0 74 1d 8b 50
0x01c60d08:   58 8b 00 e8 d8 f4 ff ff 83 ec 0c 89 46 58 8b 06
0x01c60d18:   ff 70 44 e8 54 17 fd ff 83 c4 10 8d 65 f8 5b 5e
0x01c60d28:   5d c3 55 89 e5 56 8b 55 0c 53 8b 45 08 e8 dd 1c 

Register to memory mapping:

EAX=0x00000000 is an unknown value
EBX=0x01c9bfc4: <offset 0x6ffc4> in /tmp/sqlite-3.7.2-libsqlitejdbc.so at 0x01c2c000
ECX=0x00000000 is an unknown value
EDX=0x00000000 is an unknown value
ESP=0x0059c784 is pointing into the stack for thread: 0x0a9b7000
EBP=0x0059c798 is pointing into the stack for thread: 0x0a9b7000
ESI=0x0a766b80 is an unknown value
EDI=0x011d1280: <offset 0x54c280> in     /usr/java/jre1.8.0_65/lib/i386/server/libjvm.so at 0x00c85000


Stack: [0x0054d000,0x0059e000],  sp=0x0059c784,  free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [sqlite-3.7.2-libsqlitejdbc.so+0x34d18]
C  [sqlite-3.7.2-libsqlitejdbc.so+0x34dfa]  sqlite3_column_text+0x2e
C  [sqlite-3.7.2-libsqlitejdbc.so+0x8268]  Java_org_sqlite_NativeDB_column_1text+0x2a
J 3028  org.sqlite.NativeDB.column_text(JI)Ljava/lang/String; (0 bytes) @ 0xa957f81b [0xa957f6c0+0x15b]
J 3100 C2 org.sqlite.RS.getString(Ljava/lang/String;)Ljava/lang/String; (10 bytes) @ 0xa95da894 [0xa95da820+0x74]
sqlite
  • 1 个回答
  • 1269 Views
Martin Hope
danieltalsky
Asked: 2010-04-08 12:27:03 +0800 CST

为什么在使用 PDO_SQlite 时会出现 PHP 5.2.6 分段错误?

  • 2

这是 ModWest 共享主机上的安装。我在服务器上启用了 PDO 和 PDO_sqlite 并且 phpinfo() 验证两者都在运行。当我访问 PDO 本身时,我很好,并且得到了一个有意义的错误。

<?php
  $dbh = new PDO("");
?>

这给了我一个“无效的连接字符串”错误。

但是,一旦我开始一个连接字符串sqlite:,我就会完全崩溃。当我通过网络服务器运行时,我没有看到任何错误。当我输入一个不存在的文件名时,PHP 确实会创建该文件。

我尝试通过 CLI 运行构造函数,但确实收到了一个简单的错误:

分段故障

我在 PHP 5.2.6 更改日志中没有看到任何关于此错误的信息。有人有任何其他故障排除步骤吗?

操作系统是 Debian 5.0.4

php debian php5 sqlite pdo
  • 2 个回答
  • 661 Views
Martin Hope
sendos
Asked: 2010-04-08 04:58:27 +0800 CST

为什么 apache/passenger 无法打开 sqlite3 rails 数据库文件?

  • 0

我正在运行 apache2/passenger2.0.3(ubuntu 9.10 软件包)。

我可以在 rails 文件夹中启动 Webrick 并完美地运行应用程序,就像在我的开发盒上一样

script/server

那么为什么 apache/passenger 无法打开数据库,抛出 500 并将以下内容放入日志中?

状态:500 内部服务器错误无法打开数据库:无法打开数据库文件 /usr/lib/ruby/1.8/sqlite3/errors.rb:62:in `check'...

apache-2.2 ruby-on-rails phusion-passenger sqlite
  • 1 个回答
  • 961 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve