Вопрос или проблема
Я создаю резервные копии своих данных с помощью rsync через ssh с приватным/публичным ключом на /media/pi/backups/……. на Raspberry Pi с подключенным 1 ГБ USB жестким диском в качестве периодических удаленных резервных копий. Когда я смотрю на папки резервных копий на Pi, появились некоторые директории.
root@backupPi:/media/pi# ls -la /media/pi
total 20
drwxr-x---+ 5 pi pi 4096 12 Апр 2024 .
drwxr-xr-x 3 root root 4096 21 Окт 2019 ..
drwx------ 2 root root 4096 20 Фев 2023 data
drwx------ 2 root root 4096 20 Фев 2023 data1
drwxr-xr-x 9 pi pi 4096 13 Дек 2023 data2
root@backupPi:/media/pi/data1# ls -la
total 8
drwx------ 2 root root 4096 20 Фев 2023 .
drwxr-x---+ 5 pi pi 4096 12 Апр 2024 ..
И все мои данные находятся в data2 (хотя изначально они должны были попасть в /media/pi/data)
Знак + означает наличие ACL согласно Режиму разрешений файлов, заканчивающемуся на @ или +
Но я не могу найти больше информации об этом. Как был добавлен знак +? Как мне узнать, что включает в себя ACL?
Спасибо за любые подсказки
И все мои данные находятся в data2 (хотя изначально они должны были попасть в /media/pi/data)
Кто-то пошевелил USB-кабель, и USB-устройство отключилось, пока некоторые файлы в /media/pi/data все еще использовались, поэтому файловую систему нельзя было отмонтировать, хотя устройство пропало. Когда устройство снова появилось, /media/pi/data все еще занималось предыдущей точкой монтирования, поэтому UDisks2 решил смонтировать новое устройство в /media/pi/data1 вместо этого.
Или что-то в этом роде. Однако права доступа к этим подпапкам подразумевают, что файловая система в конечном итоге была отмонтирована, но UDisks2 (или что бы вы ни использовали для монтирования дисков) не очистил точки монтирования должным образом после этого.
Как был добавлен знак +?
Он мог быть там с самого начала.
Строка соответствует записи .
, что означает сам /media/pi
– это не связано с каким-либо конкретным диском, а скорее с родительским каталогом, который содержит автоматические точки монтирования дисков. Он автоматически создается UDisks2, который также настраивает некоторые разрешения так, чтобы только вы могли получить доступ к дискам, которые вы подключаете.
Как мне узнать, что включает в себя ACL?
Используйте программу getfacl
. Если у вас нет getfacl, установите его. (Обычно пакет называется acl
.)
Как были установлены разрешения, если программы нет в системе?
Программа не устанавливает разрешения; программа является интерфейсом для системной функции, которая устанавливает разрешения. Этот системный вызов не ограничен только программой /bin/setfacl – другие программы, такие как systemd или rsync, могут напрямую использовать тот же системный вызов без необходимости проходить через специальную программу, так же, как они могут изменять обычные режимы файлов без фактического выполнения /bin/chmod
.
У меня была такая же проблема на Solaris.
Страницы руководства предназначены для программы под названием setfacl
. Это совершенно другая область разрешений файлов, удачного чтения!!
Ответ или решение
Файловые разрешения и управление доступом: предложение методов и подходов
Когда мы работаем с файловыми системами в Linux, понимание разрешений и механизмов управления доступом становится ключевым аспектом обеспечения безопасности данных. В описанной ситуации с резервным копированием на Raspberry Pi через rsync, управление файловыми разрешениями привело к появлению значка + (плюс) в списке разрешений, что указывает на наличие управления доступом на основе списков (ACL, Access Control List).
Происхождение + в разрешениях
Знак + в строке разрешений может означать, что на данном каталоге (. – текущий каталог) установлены дополнительные правила доступа, которые не отображаются стандартными правами доступа. Это может происходить в результате работы программного обеспечения, занимающегося автоматическим монтированием дисков, такого как UDisks2, которое может настроить ACL для обеспечения безопасности доступа к монтированным объектам.
Как узнать содержимое ACL
Чтобы детально изучить содержимое ACL для каталога или файла, вы можете использовать утилиту getfacl
. Если эта утилита не установлена в вашей системе, вы можете установить пакет acl
, который включает необходимые инструменты для работы с списками управления доступом. Выполнение команды:
getfacl /media/pi
позволит вам просмотреть текущее состояние ACL данного каталога. Эта информация может быть жизненно важной для диагностики проблем с доступом.
Установка прав и их изменения
Права, которые показаны в вашей системе, могли быть установлены как при первоначальном создании, так и в результате автоматических процессов, таких как работа системные службы, связанные с автоматическим монтированием. Утилиты, такие как rsync или systemd, могут манипулировать ACL напрямую, используя системные вызовы, без необходимости обращения к программам, как setfacl
или chmod
. Это дает возможность гибко управлять доступом, но иногда и усложняет выяснение источников назначения прав.
Возникновение папок data и data1
Ситуация с появлением новых директорий (data
и data1
) указывает на то, что была проблема с монтированием. Когда устройство USB, к которому подключен Raspberry Pi, отключается ненадлежащим образом, система может создать новую точку монтирования при следующем подключении. В таком случае, данные, которые были в процессе записи, могут быть недоступны, и система может автоматически создать новую директорию для монтирования (data1
), оставляя старую (data
) неиспользованной.
Заключение
В заключение, управление разрешениями файлов и ACL является важным аспектом администрирования систем Linux. Понимание, как эти разрешения устанавливаются и изменяются, может помочь избежать многих проблем при работе с данными. Использование getfacl
для анализа разрешений и понимание автоматизированного монтирования устройств — это ключ к эффективному управлению вашими резервными копиями и данными в системе.