Linux вывести владельца файла

Получить владельца файла без ls

Проблема заключается в том, что выцепить владельца файла из вывода ls -l далеко не всегда возможно, поскольку никто не отменял пробелов в названии владельца и группы. Таким образом, ни awk, ни cut здесь не помогают. Пока что я вижу только один выход: использовать медленную, но по сравнению с популистким ls’ом гораздо более адекватную команду getfacl. Есть ли варианты попроще?

Re: Получить владельца файла без ls

Re: Получить владельца файла без ls

Re: Получить владельца файла без ls

Не, stat ещё медленне, а у меня каталогов — тысячи.
Вот вариант с getfacl’ем (здесь получаем ОТНОС_ИМЯ_КАТАЛОГА====владелец====группа)

find ./ -type d -mindepth 1 | while read d; do echo «$====`getfacl \»$d\» | sed -nr ‘s%^.+owner: (.+)$%\1%p’`====`getfacl \»$d\» | sed -nr ‘s%^.+group: (.+)$%\1%p’`»; done

Re: Получить владельца файла без ls

хм, а чем на практике отличается stat от того же ls? ведь в теории они вроде обращаются к одному системному вызову — stat?

Re: Получить владельца файла без ls

Большое Спасибо . 🙂
P.S. А я и не знал о сущестсвовании такой команды, хотя в Linux уже лет 5 как минимум 🙁

Re: Получить владельца файла без ls

>а чем на практике отличается stat от того же ls

Тем, что вывод ls -l ещё парсить нужно.

Re: Получить владельца файла без ls

как это вяжется с «Не, stat ещё медленне. » ? ну если вам так охото попарсить вывод команд, то сделайте stat dir/* 🙂

Re: Получить владельца файла без ls

если все-равно find’ом обходишь дерево каталогов, то просто
man find на предмет опции -printf «%u»

Читайте также:  Как в линуксе переименовать папку

Источник

linux Владельцы (пользователи и группы) папок и файлов — как их узнать, менять и понять в терминале (консоли, рекурсивная смена)

vedro-compota's picture

В Linux у ресурса (файла или папки) есть как бы два «владельца»:

Т.е. файлом может владеть (и всегда владеет какой-то) пользователь user1 и какая-то группа group22, при этом нужно понимать пользователь user1 в общем случае может и не состоять в группе group22.

Как узнать владельца файла или папки

Используйте команду ls c флагами -la, перейдете в папку с содержимым, для которого вы хотите узнать владельцев:

ответом может быть что-то вроде:

total 8 drwxrwxr-x 2 qwer qwer 4096 июн 2 19:23 . drwxrwxr-x 6 qwer qwer 4096 июн 2 19:15 .. -rw-rw-r-- 1 qwer games 0 июн 2 19:16 myfile1 -rw-rw-r-- 1 qwer qwer 0 июн 2 19:23 myfile2
  • myfile1 имеет владельцев: юзера qwer и группу games
  • myfile2 имеет владельцев: юзера qwer и группу с тами же именем

Также можно указать путь к файлу, чтобы узнать его владельца:

-rw-rw-r-- 1 qwer games 0 июн 2 19:16 myfile1

Как сменить владельца

Сменить владельца можно с помощью команды chown, причем её формат такой:

chown [парараметры] имяпользователя:имягруппы путькресурсу

Например смена владельца-пользователя файла на user2:

Смена владеющей группы с текущей на games:

Можно и одной командой сменить и владеющего пользователя и владеющую группу на указанные:

Т.е. имя пользователя от имени группы, если они идут рядом отделяется в данном случае двоеточием.

ПРИМЕЧАНИЕ: есть ограничения логичные на смену владельцев, а именно:

  • 1) чтобы сменить владельца-пользователя на другого надо выполнять chown под суперпользователем (для этого служит команда sudo).
  • 2) чтобы сменить группу-владельца, надо, чтобы пользователь состоял и в текущей группе и в той, на которую надо сменить (т.е. в обеих), в противном случае опять же потребуются права суперпользователя.

Рекурсивная смена владельцев для всего содержимого папки

Делаем пользователя training владельцем для всего содержимого папки /usr/lib/hadoop-0.20-mapreduce/input такой комадой:

sudo chown -R training /usr/lib/hadoop-0.20-mapreduce/input
sudo chown -R training /usr/lib/hadoop

— как показывает практика флаг -R можно писать и имени пользователя и/или группы)

Ключевые слова:

Источник

Как получить список всех владельцев файлов в каталоге 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: Формат для печати имени пользователя владельца файла

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

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

# 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Linux restricted modules common

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

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

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (105)
  • Книги (27)
  • Мануал (2 306)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (820)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (114)
  • Статьи (352)
  • Философия (114)
  • Юмор (18)

Anything in here will be replaced on browsers that support the canvas element

OpenVPN Community Edition (CE) – это проект виртуальной частной сети (VPN) с открытым исходным кодом. Он создает защищенные соединения через Интернет с помощью собственного протокола безопасности, использующего протокол SSL/TLS. Этот поддерживаемый сообществом проект OSS (Open Source Software), использующий лицензию GPL, поддерживается многими разработчиками и соавторами OpenVPN Inc. и расширенным сообществом OpenVPN. CE является бесплатным для […]

Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]

В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]

Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]

Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]

Источник

Оцените статью
Adblock
detector