Есть ли способ сохранить атрибуты файла базы данных (например, UID, GID) при выполнении его резервного копирования - PullRequest
0 голосов
/ 20 декабря 2018

У нас есть пользовательская плата 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 не поддерживает это.

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

1 Ответ

0 голосов
/ 21 декабря 2018

Используйте 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 с ее включением.

...