Linux посмотреть атрибуты каталога

Команда ls – просмотр атрибутов файлов

При взаимодействии с файловой системой (ФС) всегда приходится тесно работать с некоторой информацией, без которой системное администрирование (да и обычное использование системы) просто невозможно. Речь идёт об атрибутах файлов, а точнее об инструменте её получения — команде ls. Многие, даже опытные пользователи не придают ей особого значения — для большинства это просто команда «просмотра содержимого каталогов». Однако, команда ls обладает куда более широкими возможностями. Которые превозносят работу с ФС на качественно более высокий уровень. Поскольку она позволяет получать самые ценные сведения о ФС, что является ключом к пониманию того, как, собственно, функционирует вся система в целом. Если для кого-то это и может быть совсем неважно, но только не для администраторов UNIX/Linux.

Получение сведений о файлах и каталогах

Файловая система для каждого из своих базовых объектов (файлов и каталогов) хранит около четырёх десятков информационных полей. Подавляющее большинство из этих полей ФС использует для поддержания собственной работоспособности. По сути, когда пользователь работает с ФС, он просто использует любезно предоставленные самой же ФС возможности и информацию. При этом видит всё «как на ладони», всё как есть. Единственным скрытым (а точнее, «замаскированным») компонентом в представлении ФС является оборудование. Которое представлено теми же самыми файлами с соответствующими им свойствами и атрибутами.

Что представляет собой тот или иной файл, т. е. какой доступ к нему предоставлен, какими «связями» он обладает, когда был создан и/или изменён. А также многое другое, позволяет узнать команда ls с ключом -l. Когда нужно «навести справки» о каком-либо объекте ФС, использовать нужно именно её:

Нет необходимости подробно останавливаться на синтаксисе и перечисления всех доступных опций и их описании. Поскольку это простая справочная информация, доступная из соответствующего справочного руководства: man ls. А вот сам вывод команды из приведённого примера стоит рассмотреть более внимательно. Он разбит на секции, каждая из которых является отдельным атрибутом файла. В данном выводе в первой секции представлен режим доступа к файлу. Во второй — количество жёстких ссылок на данный файл. В третьей и четвертой — информация о владельце и группе. В данном случае root, к которым принадлежит файл. Следующая секция отображает размер файла в байтах. Далее следует дата последнего изменения файла — 28 апреля 2017 г., последняя секция — имя самого файла. Что касается каталогов, то для них всегда имеется как минимум две жесткие ссылки: первая — из родительского каталога, а вторая — это «псевдокаталог» «.» внутри самого этого каталога.

Как правильно интерпретировать вывод команды ls?

Первое, что может ввести в заблуждение при изучении вывода команды ls -l, так это первая секция данных. Состоящая из набора десяти символов и показывающая режимы доступа к файлу. Для вышеприведённого примера первый символ «-» указывает, что это файл. А в случае с каталогом вместо него выводится символ «d». Следующие девять символов представляют собой три группы, отражающих режимы доступа к файлу. Первая группа (первые три символа «rwx») показывают, какие права доступа выставлены на данный файл для его владельца. Следующая группа символов — «r-x» — показывает режим доступа для группы, к которой принадлежит файл. Ну а третья («r-x») — права доступа для всех остальных пользователей.

В полях, отображающих владельца и группу вместо символьных имён могут быть также и цифровые идентификаторы. Такое бывает, когда соответствующие записи были удалены из файлов /etc/passwd или /etc/group. Также это может быть признаком возникновения ошибки в базах данных LDAP или NIS. Конечно, если таковые используются.

Следует также понимать, что время последнего изменения файла на самом деле отражает не время редактирования его содержимого, например, а время изменения одного или нескольких из его атрибутов.

Особенности использования команды ls

Когда команда ls обрабатывает не «обычные» файлы, а специальные файлы устройств (хотя это тоже самые обычные файлы). То для них она выводит несколько иную информацию:

Вместо размера файла выводится старший и младший номера (4, 0) устройства tty0 – это первая виртуальная консоль, управляемая драйвером устройства 4, который является драйвером терминала.

Когда нужно узнать для определённого файла не только количество указывающих на него жестких ссылок, но и сами эти ссылки. То целесообразно использовать опцию -i, которая выводит номер индексного дескриптора для файла:

Номер индексного дескриптора — это индекс той самой таблицы, в которой содержатся записи всех файловых систем. В свою очередь, на дескрипторы ссылаются файловые записи каталогов. Таким образом, у жёстких ссылок, ссылающихся на один и тот же файл, будут одинаковые номера. Зная номер индексного дескриптора определённого файла, можно найти в системе все ссылающиеся на него жесткие ссылки, используя команду find:

Читайте также:  Как увеличить работу ноутбука от батареи windows 10

Данный пример — лишь одно из важных практических применений команды ls. Следует также отметить некоторые особенно полезные опции команды ls:

-a – отображает все файлы и каталоги. Включая скрытые (имена которых начинаются с точки), а также «всевдокаталоги» с именами «.» и «. .»;

-t – отображает результаты в отсортированном (по времени изменения файлов) порядке. А опция -tr то же, но в обратном порядке;

-F – выделяет каталоги и исполняемые файлы в общем выводе;

-h – отображает размеры файлов и каталогов в «человекопонятных» единицах, к примеру 4k или 10M;

-R – рекурсивный вывод, выполнение которого прерывается нажатием сочетания клавиш .

Иногда возникает путаница в использовании опций -l и —d. Дело в том, что опция -d предназначена для дополнения работы опции -l (которая выводит подробную информацию об атрибутах). Когда необходимо получить атрибуты именно конкретного каталога:

Еще полезные примеры ls

Вывод файлов по дате изменения, вверху будут самые новые файлы

Вывод файлов по дате изменения, вверху будут самые старые файлы

Отсортировать файлы по размеру

Вывести список только каталогов:

Заключение

В заключении нужно отметить, что несмотря на кажущуюся незатейливость команды ls, она является базовым инструментом системного администратора для «исследования» паутины ФС. И если можно так выразиться, средством для понимания её скрытого порядка и принципов работы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Атрибуты файлов в Linux

Файловую систему (ФС) невозможно представить без такого важного её компонента, как атрибуты файлов. С технической точки зрения такое, конечно же, возможно, однако это было бы абсолютно бессмысленно. Поскольку не отвечало бы даже далеко не самым «строгим» требованиям для обеспечения безопасности, надёжности и масштабируемости. Поскольку вся работа с операционными системами Linux «завязана» на ФС. То становится очевидным то, как важно уметь её (ФС) понимать. Атрибуты файлов — это, образно выражаясь, «язык», на котором «общаются» между собой, собственно ФС и пользователи (особенно системные администраторы) систем Linux.

Что это такое?

Технически это набор из девяти основных битов. Определяющих какие из пользователей обладают правами на чтение, запись. А также запуск файлов для выполнения. Данный набор формирует код, называемый режимом доступа к файлу/каталогу. Первые три бита определяют права доступа для владельца. Следующие — для группы пользователей, к которой относится файл. и последние три бита — права доступа для всех остальных пользователей в системе. На практике это выглядит так:

Этот вывод говорит о том, что файл .mysql_history доступен для чтения и записи только его владельцу — пользователю john. О чём свидетельствуют первые три символа (rw-) в режима доступа. Символ «-», стоящий перед ними — это признак, что это файл, а не каталог, блочное устройство и т. д. Таким образом, ФС на всем понятном языке говорит, что данный файл может быть прочитан или отредактирован только его владельцем (или суперпользователем).

Существует также ещё четыре дополнительных бита. Которые определяют тип самого файла и задаются непосредственно при создании файла. С помощью команды chmod можно менять основные (и некоторые дополнительные) биты режима доступа. Сделать это может только владелец файла или суперпользователь. Просматривать атрибуты (в том числе и режимы доступа) позволяет команда ls. Таким образом, характер поведения ФС, а также распределение доступа и управление им полностью определяется атрибутами файлов. Которые хранит сама ФС — это самодостаточный и универсальный подход.

Как это работает?

Для записи кода режима доступа используется восьмеричная запись чисел. Как уже было отмечено, код доступа содержит три «триады» битов — для пользователя, группы и всех остальных, именно в таком порядке. Битам из первой триады соответствуют значения в восьмеричной записи 400, 200 и 100. Для второй триады (т. е. для группы) — 40, 20 и 10. Наконец, для третьей (все остальные) — 4, 2 и 1. В свою очередь, первому биту в каждой триаде соответствует доступ на чтение (r — «read»). Второму — на запись (w — «write») и третьему — на выполнение, т. е. x — «execute».

В традиционной модели прав доступа UNIX предполагается, что каждый пользователь «заперт» в пределах всего одной категории (триады). Это означает, что для неоднозначной ситуации применяются самые строгие права. Например, право на владение всегда определяется только битами из триады владельца. И никак и никогда группой или другими пользователями.

Установка бита чтения (r) в одной из триад (или во всех) задаёт право открывать данный файл для чтения соответствующим категориям пользователей. Наличие бита записи (w) позволяет изменять файл. При этом возможно его удаление и/или переименование файла, но только в том случае, если заданы соответствующие биты для его родительского каталога, поскольку именно в его записях хранятся имена файлов.

Читайте также:  Аудио драйвера для windows professional

Установка бита запуска позволяет, собственно, запускать файл на выполнение. Такие файлы называются «исполняемыми». Исполняемых файлов существует две разновидности: бинарные — исполняемые центральным процессором, а также сценарии или скрипты, исполняемые командным интерпретатором. В последнем случае это обычный текстовый файл, но для того, чтобы интерпретатор мог определить, с кем «имеет дело», в самое начало таких файлов помещаются специальные инструкции, вроде такой:

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

Когда бит выполнения устанавливается для каталога. То это означает, что в данный каталог разрешён переход, либо разрешён доступ к файлу через данный (транзитом, так сказать) каталог. Но без получения списка подкаталогов и всего содержимого каталога. Для того, чтобы получить содержимое какого-либо каталога. Необходимо, чтобы для него вместе с битом выполнения был установлен также и бит чтения.

Специальные биты режимов доступа setuid и setgid

Очень важное значение в системах Linux имеют биты setuid (бит смены идентификатора пользователя) и setgid (бит смены идентификатора группы). Их назначение в том, чтобы помочь, в определённых ситуациях, программам получить полноценный доступ к каким-либо файлам и/или процессам. Которые по спецификации основного режима доступа недоступны пользователям, от имени которых эти программы запускаются. Битам setuid и setgid в восьмеричной записи соответствуют значения 4000 и 2000. Так что всё это значит? Дело в том, что если для какого-либо файла установлен бит setuid.То какой-либо пользователь (неважно кто) может запускать на исполнение этот файл от имени владельца этого файла. Таким образом работают такие программы как passwd, которую может использовать пользователь для смены своего пароля. Однако исполняемый файл passwd принадлежит суперпользователю root. Естественно, setuid и setgid можно устанавливать командой chmod:

Здесь первая команда устанавливает для файла settings.php бит setuid. Вторая — setgid, третья — оба этих бита сразу.

В выводе команды ls это выглядит так:

Здесь символ «s» в спецификации режима доступа. Говорит о том, что установлен бит setgid (вторая триада). Вместо него может быть символ «S», т. е. заглавная буква, которая говорит о том, что данный бит для этого файла был установлен впервые.

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

Sticky-бит

Этот дополнительный бит служит для того, чтобы внутри каталога, для которого установлен этот бит, удаление и/или переименование файлов могли производить только их владельцы или суперпользователь.

Установить sticky-бит может только суперпользователь, но обычный пользователь-владелец файла может его снять. Sticky-биту соответствует восьмеричное значение 1000, пример:

А в выводе команды ls это будет выглядеть следующим образом:

В данном выводе в спецификации режима доступа символ «T» говорит об установленном sticky-бите. Его представление в виде заглавной и строчной букв имеет то же значение, как и по аналогии с битами setuid и setgid.

В заключении стоит ещё раз отметить то, насколько важно понимать и правильно интерпретировать атрибуты файлов. От этого зависит, насколько корректно и надёжно будет функционировать вся система. Грамотное системное администрирование невозможно без понимания работы ФС, в частности того, что такое атрибуты файлов.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Команда ls Linux

Если вы часто используете терминал, то довольно часто возникает необходимость посмотреть содержимое той или иной папки. Автодополнение спасает во многих случаях, но если вы не знаете что искать и не хотите использовать файловый менеджер, то быстро посмотреть что находится в папке может быть очень полезно. Другое применение команды ls — посмотреть разрешения для файлов и папок.

Установка правильных прав и владельца файла имеет очень важное значение для работы различного программного обеспечения, например, того же самого веб-сервера. В этой статье будет рассмотрена команда ls linux, основные ее опции и возможности, а также примеры применения.

Команда ls linux

Как обычно, в таких статьях сначала нам нужно понять синтаксис команды, чтобы вы знали как правильно ее использовать. На самом деле, синтаксис очень прост, вы набираете саму команду, а после нее путь к папке, содержимое которой хотите посмотреть. Если вы запустите команду без пути, то она выдаст содержимое текущего каталога:

$ ls опции /путь/к/папке

Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:

  • -a — отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
  • -A — не отображать ссылку на текущую папку и корневую папку . и ..;
  • —author — выводить создателя файла в режиме подробного списка;
  • -b — выводить Escape последовательности вместо непечатаемых символов;
  • —block-size — выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
  • -B — не выводить резервные копии, их имена начинаются с

;

  • -c — сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
  • -C — выводить колонками;
  • —color — включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
  • -d — выводить только директории, без их содержимого, полезно при рекурсивном выводе;
  • -D — использовать режим вывода, совместимый с Emacs;
  • -f — не сортировать;
  • -F — показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
  • —full-time — показывать подробную информацию, плюс вся информация о времени в формате ISO;
  • -g — показывать подробную информацию, но кроме владельца файла;
  • —group-directories-first — сначала отображать директории, а уже потом файлы;
  • -G — не выводить имена групп;
  • -h — выводить размеры папок в удобном для чтения формате;
  • -H — открывать символические ссылки при рекурсивном использовании;
  • —hide — не отображать файлы, которые начинаются с указанного символа;
  • -i — отображать номер индекса inode, в которой хранится этот файл;
  • -l — выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
  • -L — для символических ссылок отображать информацию о файле, на который они ссылаются;
  • -m — разделять элементы списка запятой;
  • -n — выводить UID и GID вместо имени и группы пользователя;
  • -N — выводить имена как есть, не обрабатывать контролирующие последовательности;
  • -Q — брать имена папок и файлов в кавычки;
  • -r — обратный порядок сортировки;
  • -R — рекурсивно отображать содержимое поддиректорий;
  • -s — выводить размер файла в блоках;
  • -S — сортировать по размеру, сначала большие;
  • -t — сортировать по времени последней модификации;
  • -u — сортировать по времени последнего доступа;
  • -U — не сортировать;
  • -X — сортировать по алфавиту;
  • -Z — отображать информацию о расширениях SELinux;
  • -1 — отображать один файл на одну строку.
  • Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.

    Использование ls в Linux

    Как вы уже поняли, ls — это сокращение от list, эта команда представляет из себя аналог команды dir для Linux. Самый простой способ использовать команду, запустить ее без параметров и посмотреть содержимое текущей папки:

    Чтобы посмотреть список файлов в папке linux для точно заданной папки, вам нужно указать путь к ней. Например, смотрим содержимое корневой папки:

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

    Тут вывод уже разделен на отдельные колонки, в первой колонке указаны права доступа к файлу в формате владелец группа остальные. Следующая колонка — это тип файла или папки, дальше владелец и группа, затем размер, дата создания и последний параметр — имя. Если вы еще хотите знать кто создал файл, можно использовать опцию author:

    Колонка создателя будет добавлена после группы. Дальше размер. Он выводится в байтах, килобайтах или еще в чем-то и нам не совсем понятно что там происходит, поэтому добавьте опцию -h чтобы выводить размер в более удобном виде:

    Для папок размер выводится не сумой всех размеров всех файлов, а всего лишь то место, которое занимает сама папка, поэтому давайте посмотрим пример с файлами:

    ls -l Фото
    ls -lh Фото

    Если вы хотите видеть скрытые файлы, а в домашней папке их просто море, то используйте опцию -a:

    Или смотрим скрытые файлы без ссылок на текущую и родительскую папку:

    Теперь нас будет интересовать сортировка. Сначала отсортируем файлы по размеру:

    Обратите внимание, что файлы расположены от большего к меньшему. Теперь мы можем включить обратный порядок:

    С помощью опции -r мы вывели файлы в обратном порядке. Теперь отсортируем по алфавиту:

    Или сортируем по времени последней модификации:

    Обратите внимание на колонку времени, действительно, самые новые файлы будут вверху списка. Если вы хотите посмотреть какие метки SELinux присвоены файлу, необходимо использовать опцию -Z:

    Но это возможно только в системах, где установлена надстройка SELinux. Если вы хотите рекурсивно вывести содержимое всех папок, используйте опцию -R:

    Если же вам нужно список папок и файлов в директории через запятую, что можно использовать -m:

    Выводы

    Как видите, команда ls linux достаточно сложная, но вам будет достаточно только несколько основных ее функций. А в плане — «Просто посмотреть что делается в папке», эта команда очень проста. Если у вас остались вопросы, спрашивайте в комментариях!

    Источник

    Читайте также:  Включить gpu windows 10
    Оцените статью