Как проверить действующие права доступа к файлам (включая ACL)/доступность для данного файла и данного пользователя (включая сервисные/системные учетные записи) без проверки всего пути вручную?
Пример: Предположим, пользователь joe и файл /long/path/to/file.txt. Даже если файл .txt был изменен на 777, Джо все равно должен иметь доступ к /long/, а затем /long/path/ и затем /long/path/to/ раньше. Если у joe нет доступа хотя бы для чтения ко всем папкам в пути, он не может получить доступ (чтение/запись/выполнение) к файлу. Таким образом, действующие разрешения для него (как пользователя «мир/все») равны 0, и он не может получить доступ к файлу.
В качестве альтернативы: как мне получить список разрешений (включая ACL) всех пользователей (включая учетные записи служб/систем) для данного файла?
Приложение или bash-скрипт также приветствуются.
Похожий вопрос с несколько иной направленностью уже задавали в Unix & Linux: как проверить, может ли пользователь получить доступ к данному файлу?
Одним из коммерческих приложений, которое предоставляет эффективные разрешения для пользователя и выбранного файла или папки, является TinkerTool System :
В приведенном ниже примере показаны действующие разрешения файла /private/var/log/clamav.log для пользователя Spotlight . Пользователь Spotlight не может ни читать, ни записывать данные.
При активации вкладки «Показать или установить разрешения» разрешения/владение POSIX отображаются явно.
без холма
ls -del FILE|DIR
будут перечислены как стандартные разрешения unix, так и списки ACL. Что именно вы ищете?кланомат
ls
команда показывает права доступа к данному файлу. Но, как описано в связанном вопросе Unix и Linux, разрешения на главном пути могут быть установлены иначе, так что файл, доступный для чтения всем, не может быть прочитан произвольным пользователем. Результат: права доступа к файлу равны (77)7, но действующие права доступа к файлу равны (77)0 (для произвольного пользователя, отличного от владельца и не входящего в ту же группу)без холма
ls -del
) и возможность доступа (что, кажется, то, что вы ищете).без холма