Как получить список всех владельцев файлов в каталоге Linux

Это руководство поможет вам получить список владельцев всех файлов в каталоге Linux.

Команды, показанные здесь, являются универсальными и, как ожидается, будут работать с любым дистрибутивом Linux.

Статья основана на Ubuntu 18.04, 16.04 и CentOS 7.

Работа с файлами, каталогами и разрешениями пользователей является повседневной задачей при администрировании систем Linux.

Почти все в Linux — это файл, и знание того, как проверить и изменить право собственности на файл / каталог, пригодится.

Список владельцев файлов в каталоге с помощью команды stat

stat — это инструмент командной строки, используемый для отображения состояния файловой системы или файловой системы в системах Linux / Unix.

В Ubuntu и во всех системах на базе Debian команда stat предоставляется пакетом coreutils.

Если по какой-либо причине этот пакет не установлен, его можно установить с помощью команды:

 # sudo apt-get -y install coreutils 

В CentOS команда также предоставляется пакетом coreutils, который может быть установлен с помощью yum, если отсутствует:

 # sudo yum -y install coreutils 

После подтверждения того, что команда существует, мы будем использовать ниже опции, чтобы получить владельцев файлов в каталоге:

-c: указать формат
% U: Формат для печати имени пользователя владельца файла

Таким образом, синтаксис команды:

 # stat -c %U <file> 

Для всех файлов используйте знак подстановки *.

См. Примеры ниже:

# cd ~
# stat -c %U *
jmutai
jmutai
jmutai

Проблема с этим выводом заключается в отсутствии сопоставления между файлом и владельцем.

Нам нужно будет использовать  bash для сопоставления файла и владельца.

Итак, мы запустим команду, как показано ниже:

 # cd /dir
# files=`ls`
# for file in $files; do owner=`stat -c %C $file`; echo $file $owner; done 

Вывод для выше будет в формате <файл> <владелец>, который должен быть легко интерпретирован.

 Development jmutai
Documents root
ping_all.sh dan
examples.desktop benard 

Вы можете узнать больше о команде stat

 # man stat 

Список владельцев файлов в каталоге с помощью команды find

find — это инструмент командной строки Linux, который часто используется для поиска файлов в каталоге.

С помощью команды find вы можете указать владельцев файлов в каталоге

Точный синтаксис команды для использования:

 # find /dir -printf '%u\n' 

Это действие будет делать рекурсивный поиск и листинг по умолчанию.

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

Для этого проведите вывод команды сортировки с параметром -u

 # find / dir -printf '% u \ n' | sort -t: -u 

Чтобы включить владение файловой группой, добавьте параметр% g в функцию вывода.

 # find / dir -printf '% u:% g \ n' | sort -t: -u 

В приведенном ниже примере будут показаны все уникальные имена пользователей, хранящиеся в каталоге / var /

См. Следующий пример для имен пользователей и групп:

Использование команды ls

Вы также можете использовать команду ls для проверки владельца файлов и каталогов в Linux.

Единственная проблема заключается в том, как обрабатывать вывод

 # ls -lh /dir
# ls -lhR /dir 

Три команды  должны помочь вам идентифицировать владельцев файлов и каталогов на ваших машинах Linux.

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40