Получить права для конкретного пользователя в файле / каталоге

Я ищу команду, которая по существу будет делать следующее: проверить, какие права у пользователя есть в файле / dir (включая ACL) и вернуть его.

Например, у вас есть следующий каталог:

-rw-r--r-- 1 user1 group1 [snip] file1 -rw-rw-r-- 1 user2 group1 [snip] file2 drwxrwx--- 1 user2 group2 [snip] dir1 

Тогда команды и вывод должны быть (если user1 является членом только group1):

 rights user1 file1 => r-- or 4 rights user1 file2 => rw- or 6 rights user1 dir1 => --- or 0 

Доступна ли такая команда или какие инструменты / команды не могут использоваться для создания скрипта, который бы это сделал?

One Solution collect form web for “Получить права для конкретного пользователя в файле / каталоге”

Я разрабатываю следующий код bash

 #!/bin/bash # Use: $0 user files user="$1" shift sudo -u "$user" bash -c 'for f; do [[ -r "$f" ]] && printf 'r' || printf '-' [[ -w "$f" ]] && printf 'w' || printf '-' [[ -x "$f" ]] && printf 'x' || printf '-' printf " %s\\n" "$f" done' _ "$@" 

Это должно автоматически учитывать acl, если доступно, но недостатком является использование sudo (или, альтернативно, su ), чтобы стать $user .

  • Копирование файла в файловой системе JFS не соответствует рекомендациям ACL
  • Могут ли ACL переопределять файловые perms в Linux?
  • Опция «defaults» включает опцию «acl» в / etc / fstab?
  • Файловая система-ACL (setfacl) Эквивалентна «mkdir -p» для рекурсивной обработки ACL
  • Samba 4 действительно уважает Unix-файлы acls?
  • Сбой ACL NFSv4
  • ACL и классические разрешения
  • Разрешения, установленные для новых файлов и папок по умолчанию ACL
  • AWS Исходящие правила ACL влияют на входящие соединения ssh
  • Как добавить разрешение группы только для чтения в папку, у которой уже есть группа по умолчанию, и унаследовать ее для всех вновь созданных файлов и папок?
  • «Операция не поддерживается» для setfacl внутри скрипта python
  • Linux и Unix - лучшая ОС в мире.