Я делаю программу на python, которая хранит и модифицирует запасы небольшого магазина, используя базы данных SQLite.
Каждый работодатель будет пользователем системы Linux и пользователем программы. Поскольку программа изменяет базы данных, мне нужно, чтобы у каждого пользователя были права на запись и чтение в базах данных.
В программу включен терминал, поэтому я сделаю bash-скрипт, позволяющий выполнять root, например: >db
, который откроет папку баз данных для быстрой инвентаризации и т. Д. Но я не хочу допускать, чтобы некоторые команды работодатели. Проблема заключается в том, что если я оставляю разрешения на содержащую папку для работодателей с chmod
, то пользователю не разрешается использовать программу (sqlite3.OperationalError: unable to open database file
).
Могу ли я достичь этого? Может быть, с помощью скриптов bash?
Я думаю, что нашел путь или частичное решение. Из этого сообщения: https://unix.stackexchange.com/questions/82347/how-to-check-if-a-user-can-access-a-given-file команды статистики и inotifywait не помогают, потому что они дают тот же вывод, к которому невнимательный пользователь получает доступ к папке или просто использует программу. Но возможно аудит может помочь мне. Общение с subproccess программы, которую я могу отправить предупреждению в корень в программе, говоря "пользователя, приняло папку базы данных", в то время как покупатель собирается быть единственным тем, кто делает копии дб в облаке в моем случае.