如何授予其他用户写入SQLite数据库的权限?

时间:2017-06-07 10:07:13

标签: sqlite

我遇到了与SQLite数据库权限相关的奇怪错误。

我输入bash

rm -f test.db
sqlite3 test.db 'CREATE TABLE t (qwe, qqq)'
chmod 666 test.db
sudo -u another-user sqlite3 test.db 'INSERT INTO t VALUES (4, 2)'

打印

  

错误:无法打开数据库文件

如果我将test.db文件的所有者更改为another-user,则会打印相同内容。 但是,如果我试图代表root或我插入记录,那就没有了 错误,并且已成功插入。

有什么麻烦?

getfacl test.db的输出如下

# file: test.db
# owner: mymedia
# group: mymedia
user::rw-
group::rw-
other::rw-

AppArmor没有与SQLite相关的配置文件,禁用了SeLinux。我曾是 在Ubuntu 16.04上进行实验。 SQLite的版本是3.11.0。

1 个答案:

答案 0 :(得分:1)

这里的问题似乎不是文件权限,而是目录。检查放置数据库文件的目录是否具有another-user的适当权限。