我想在Mac,TCC數據庫中插入一行到系統數據庫中。主要是我試圖插入到這個數據庫的'訪問'表。Sqlite3寫入一個只讀數據庫
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文件夾是/庫/應用程序\支持/ 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
[email protected] 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,但他們每一個我得到:操作不允許。
我在做什麼錯?還有另一種解決這個問題的方法嗎?
如果我用sudo運行它,也會出現同樣的錯誤。 – ShdwKnght333
你用sudo跑什麼?如果您運行腳本並且您的腳本沒有明確修改訪問權限 - 那就不足爲奇了。 'ls'表明文件由用戶「wheel」擁有,這可能不是你(參見http://superuser.com/questions/191955/what-is-the-wheel-user-in-os-x)目前的訪問規則是隻能編輯文件,即使是「root」組也不能。如果您想以其他用戶的身份編輯文件,則應首先在sudo下更改accecss權限,然後對其進行編輯。注意:我不確定編輯這樣的文件manualy是一個好主意。你確定沒有API嗎? – SergGr
關於編輯部分,我已經在其他機器上安全成功地完成了它。我還讀了你提供給我的鏈接。那麼我現在應該使用'chgrp',如果是的話呢?就像在文件或目錄中一樣。我確信'chmod'不會工作,因爲我試過了,失敗了。 – ShdwKnght333