Есть ли способ сохранить атрибуты файла базы данных (например, UID, GID) при создании резервной копии

У нас есть настраиваемая плата на основе beaglebone black.
Мы добавляем приложение, которое запускается от имени пользователя, отличного от пользователя root.
Это приложение владеет базой данных sqlite с включенным журналом.
Но пользователю root необходимо сделать резервную копию этой базы данных и сохранить его атрибуты файла, такие как пользователь, группа и разрешения.

Теперь я использовал следующую команду, чтобы сделать резервную копию базы данных sqlite, но атрибуты файлов, такие как пользователь и группы, не поддерживаются, права доступа к файлам такие же, проверьте команды ниже,

# ls -l
-rw-r--r--    1 ankur    ankur        12288 Dec 20 15:46 testdb.sqlite
# 
# 
# 
# sqlite3 testdb.sqlite ".backup testdb_backup.sqlite"
# ls -l
-rw-r--r--    1 ankur    ankur        12288 Dec 20 15:46 testdb.sqlite
-rw-r--r--    1 root     root         12288 Dec 20 15:47 testdb_backup.sqlite

Есть ли другая команда (или параметры) для создания резервной копии и поддержания атрибутов файлов?

Один из вариантов - сделать резервную копию и скопировать атрибуты исходного файла в место назначения (резервную базу данных). Но busybox cp этого не поддерживает.

Любое другое предложение / указатель?


person ART    schedule 20.12.2018    source источник
comment
зачем пользователю root это нужно?   -  person TBR    schedule 21.12.2018
comment
Потому что скрипт, который выполняет резервное копирование баз данных, работает от имени пользователя root. Это общее для всех баз данных.   -  person ART    schedule 21.12.2018


Ответы (1)


Используйте su или sudo для выполнения таких действий, которые должны вести себя так, как если бы пользователь их выполнил.

В данном случае это будет например

su -c 'sqlite3 testdb.sqlite ".backup testdb_backup.sqlite"' ankur

а также

sudo -u ankur sqlite3 testdb.sqlite ".backup testdb_backup.sqlite"

su доступен как команда busybox, вам может потребоваться включить ее, если ваша среда не создает busybox с включенной функцией.

person TBR    schedule 21.12.2018