如何授予其他用户写入SQLite数据库的权限?
我遇到了一个与SQLite数据库权限相关的奇怪错误 我输入bash如何授予其他用户写入SQLite数据库的权限?,sqlite,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文件的所有者更改为另一个用户,它将打印相同的内容。 但是,如果我试图代表root或我插入
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
文件的所有者更改为另一个用户
,它将打印相同的内容。
但是,如果我试图代表root或我插入记录,则没有任何错误
错误,并且已成功插入
有什么问题吗
getfacl test.db
的输出如下
AppArmor没有与SQLite相关的配置文件,SeLinux已禁用。我是
在Ubuntu 16.04上进行实验。SQLite的版本是3.11.0。这里的问题似乎不是文件权限,而是目录。检查放置数据库文件的目录是否对另一个用户具有适当的权限哦,谢谢!当我授予另一个用户对该文件夹的写访问权限时,它解决了这个问题。SQLite似乎在数据库文件附近创建临时文件
# file: test.db
# owner: mymedia
# group: mymedia
user::rw-
group::rw-
other::rw-