我正在用 Python 编写一个程序,使用 SQLite 数据库存储和修改小商店的库存。
每个雇主都将成为 Linux 系统的用户和程序的用户。由于程序会修改数据库,因此我需要每个用户都拥有数据库的写入和读取权限。
该程序包含一个终端,因此我将编写一个 bash 脚本以允许 root 执行,例如:>db
它将打开数据库文件夹以进行快速盘点等。但我不想允许雇主执行某些命令。问题是,如果我使用 退出雇主对包含文件夹的权限chmod
,则用户将不被允许使用该程序(sqlite3.OperationalError: unable to open database file
)。
我可以实现吗?也许使用 bash 脚本?
答案1
我认为我已经找到了一种方法,或者说部分解决方案。摘自这篇文章:https://unix.stackexchange.com/questions/82347/how-to-check-if-a-user-can-access-a-given-file stat 和 inotifywait 命令没有帮助,因为无论用户是访问文件夹还是仅使用程序,它们都会给出相同的输出。但也许审计可以帮助我。与程序的子进程通信,我可以向程序的根发送警报,说“用户访问了数据库文件夹”,而购物者将是唯一一个复制数据库的人,在我的情况下是在云端。