【发布时间】:2017-07-17 16:04:00
【问题描述】:
我正在尝试将一行插入 Mac 中的系统数据库,即 TCC 数据库。主要是我试图插入到这个数据库中的“访问”表中。
c.execute("INSERT or REPLACE INTO access VALUES('kTCCServiceAccessibility','%s',%s,1,1,NULL,NULL)" % (client, client_type))
这在我测试过的大多数 Mac 上都能正常工作(我正在编写应该在多个 Mac 上工作的代码)。但是有一个 mac,当我在其中运行这个命令时,它会返回
File "read.py", line 76, in insert_client
c.execute("INSERT or REPLACE INTO access VALUES('kTCCServiceAccessibility','%s',%s,1,1,NULL,NULL)" % (client, client_type))
sqlite3.OperationalError: attempt to write a readonly database
我可以做些什么来确保它以可写数据库的形式打开。
注意:我读过this question and its answer。所以我想我应该改变我的权限。我有 .db 文件的文件夹是 /Library/Application \Support/com.apple.TCC/TCC.db
现在这些是每个文件夹的以下权限
ls -lOe 输出
drwxr-xr-x+ 57 root wheel sunlnk 1938 Feb 17 17:39 Library 0: group:everyone deny delete
drwxr-xr-x 11 root admin sunlnk 374 Feb 21 09:50 Application Support
drwxr-xr-x@ 3 root wheel restricted 102 Feb 27 11:35 com.apple.TCC
-rw-r--r-- 1 root wheel restricted 57344 Feb 27 11:35 TCC.db
现在我尝试将所有这些 chmod 更改为 775,但在每一个上我都得到:不允许操作。
我究竟做错了什么?还有其他方法可以解决这个问题吗?
【问题讨论】: