Во время навигации по клиентским серверам возникает потребность просмотреть различную информацию о файле: права доступа, владельца (пользователь/группа), время последнего изменения или появления, и мн. чего еще. Для этого я использую две команды: одну, чтобы просмотреть сведения массово (грубо говоря, для всей директории), другая нужна, чтобы узнать информацию о конкретном файле или папке. Хочу познакомить вас с этими командами.
1️⃣ Команда ls -la
Думаю, что прочитав введение вы сразу же подумали про команду ls (list), которая вместе с ключами l и a выводит подробную информацию о файлах и папках (в том числе скрытых) в директории. Выхлоп у нее обширный, но давайте посмотрим на него на примере одного файла:
-rw-r--r--. 1 jc jc 10 ноя 7 11:39 test.txt
Что значит этот набор символов? Давайте расшифруем:
- первый символ - указывает на тип файла. В данном случае, это обычный файл.
- символы rw- показывают права доступа для владельца файла. rw- означает, что владелец (пользователь jc) имеет права на чтение (read) и запись (write) этого файла.
- символы r-- показывают права доступа для группы, к которой принадлежит файл (в данном случае, группа также имеет права только на чтение файла).
- символы r-- показывают права доступа для остальных пользователей, не являющихся владельцем и не принадлежащих к группе (они также имеют права только на чтение файла).
- последний символ . указывает на наличие SELinux-метки, что означает, что файл может иметь дополнительные атрибуты безопасности SELinux.
- 1: число обозначает количество жестких ссылок на файл (в данном случае, у файла есть только одна жесткая ссылка).
- jc: имя пользователя (владельца) файла.
- jc: название группы, к которой принадлежит файл.
- 10: размер файла в байтах.
- ноя 7 11:39: дата последней модификации файла.
- test.txt: имя файла.
Обычно, использую эту команду в самом начале работы с файлами или папками. Так сказать, осматриваю поле предстоящих действий и смотрю, что из содержимого будет интересно. К выбранным файлам и папкам уже можно применить следующую команду.
2️⃣ Команда stat
Название говорит само за себя: команда выводит информацию о конкретных файле или папке. У команды есть параметры, но я их обычно не использую. Беру и просто пишу stat <имя файла или папки>. Выхлоп у нее следующий:
Файл: test.txt
Размер: 10 Блоков: 8 Блок В/В: 4096 обычный файл
Устройство: 0/38 Инода: 744401 Ссылки: 1
Доступ: (0644/-rw-r--r--) Uid: ( 1000/ jc) Gid: ( 1000/ jc)
Контекст: unconfined_u:object_r:user_home_t:s0
Доступ: 2023-11-07 11:39:28.492328539 +0500
Модифицирован: 2023-11-07 11:39:25.705300264 +0500
Изменён: 2023-11-07 11:39:25.705300264 +0500
Создан: 2023-11-07 11:37:20.259833041 +0500
Согласитесь, что информация представлена гораздо лучше, чем при использовании первой команды? Если стоит русская локаль, то выхлоп тоже будет на русском и тут просто бери и читай, выхватывая то, что нужно. Особенно радует числовой вывод прав доступа. После считывания нужных данных уже можно планировать дальнейшие действия с файлами или папками.
3️⃣ Ничего не понятно с правами доступа
Если вы ничего не поняли в этих буквах и цифрах, который означают права доступа к файлу/папке, то на канале в Дзен выходила статья про работу с правами доступа на файлы и папки в Linux. Из нее же вы сможете легко перейти по внутренним ссылкам на цикл статей, посвященных работе с файлами и папками в Linux. Постарался в этих материалах объяснить все доступным языком с примерами.
🏁 Всего две команды позволяют получить очень много информации о файлах и папках в Linux. Польза в средах рабочего окружения от них небольшая (хотя, может вы много работаете в терминале или консольном файловом менеджере), а вот на серверах эти команды просто незаменимы.