使用PDO sqlite PHP适配器时,会创建新的sqlite数据库文件,并将组权限设置为只读,并且不支持umask。
我需要每个数据库文件都可以按组写入。有什么办法可以实现吗?
编辑:我知道如何更改文件的权限,我问是否可以使用正确的权限(根据进程umask)创建它。
答案 0 :(得分:1)
看起来有一个SQLITE_DEFAULT_FILE_PERMISSIONS
compilation parameter。
如果有必要,似乎umask is applied on top of it限制它。
因此,使用SQLITE_DEFAULT_FILE_PERMISSIONS=666
重新编译并依赖于umask是有意义的。太糟糕了,它不是sqlite中的默认选项。
答案 1 :(得分:0)
在使用sqlite的connect调用打开数据库文件之前,可以将其打开为普通文件并获得所需的权限。除非文件已经存在,否则它将创建一个空文件。 Sqlite将用数据库填充该空文件。
这比创建文件后使用chmod
更安全,其原因有二:
chmod
chmod
会忘记为其他文件设置权限。