Midnight Commander: установка и настройка в Linux

Большинство людей используют команду ls с опцией -l для проверки прав доступа к файлу в Linux.

Описание

Книга содержит полный набор информации обо всех аспектах установки и использования Mandriva Linux и миграции в Linux из Windows/Mac OS X. Описаны основы установки дистрибутива GNU/Linux, даны инструкции для пользователя перед началом инсталляции ОС Mandriva Linux и в процессе инсталляции, изложен вводный курс для начинающих по работе в GNU/Linux, приведены описания программных продуктов для Linux на все случаи жизни: офисных пакетов, средств мультимедиа, графических редакторов и интернет-приложений. Для опытных пользователей описаны глубины Linux — файловые системы, сборка и установка ядра Linux, компиляция программного обеспечения, настройка и восстановление системы после сбоев. Добавлены главы о 3D рабочих столах, о конфигурации серверов с помощью WebMin, об управлении пакетами из командной строки, об использовании Mandriva на ноутбуках.

Особенности и преимущества Midnight Commander

  • Работа с RPM-пакетами;
  • Работа в режимах ASCII и HEX;
  • Работа с различными архивами и образами файловых систем;
  • Работа с сетевыми файловыми системами Samba, Fish, FTP, SFTP;
  • Выполнение операций копирования и перемещения файлов в фоновом режиме;
  • Встроенный текстовый редактор mcedit с подсветкой синтаксиса;
  • Текстовый режим, основанный на библиотеках ncurses и S-Lang. Это позволяет программе работать как в консоли, так и в различных эмуляторах терминала и через удалённые соединения, например, по протоколу SSH;
  • MC поставляется с поддержкой мыши. Мышь подключается, если вы запускаете MC с xterm терминала (эта функция также работает при подключении через telnet или rlogin c xterm) или с Linux консоли при наличии gpm mouse сервера;
  • Поддержка многоязыкового интерфейса;
  • Поддержка кодировки UTF-8 (начиная с 2009 года);

chattr Синтаксис

Команда chattr имеет следующую общую форму:

chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE…

Значение части [OPERATOR] может быть одним из следующих символов:

  • + — Оператор «плюс» сообщает chattr о необходимости добавления указанных атрибутов к существующим.
  • — — Оператор минус указывает chattr удалить указанные атрибуты из существующих.
  • = — Оператор равенства сообщает chattr о необходимости установить указанные атрибуты как единственные.

За оператором следует один или несколько флагов [ATTRIBUTES] которые вы хотите добавить или удалить из атрибутов файла. Ниже приведен список нескольких общих атрибутов и связанных флагов:

  • a — если этот атрибут установлен, файл можно открыть только в режиме добавления для записи.
  • A — Когда файл с этим установленным атрибутом открыт, его временная запись не изменяется. atime (время доступа) — это время последнего доступа / открытия файла какой-либо командой или приложением.
  • e — этот атрибут означает, что файл использует экстенты для сопоставления блоков на диске. Атрибут e нельзя изменить с помощью chattr .
  • i — этот атрибут указывает, что файл неизменяемый, что означает, что файл нельзя удалить или переименовать.
Читайте также:  Изображение в iOS 12.1 beta подтверждает дизайн нового iPad Pro 2018 года

Чтобы получить полный список всех атрибутов и флагов файлов, введите в терминале man chattr .

По умолчанию атрибуты файла не сохраняются при копировании файла с помощью таких команд, как cp или rsync .

Команда stat в Linux

Команда stat перечисляет важные атрибуты файлов и каталогов. Он также может отображать информацию о файловой системе вместо файлов.

У него простой синтаксис:

stat [options] files

Есть только несколько вариантов с командой stat:

  • -f: показать информацию для файловой системы вместо файла
  • -L: переходить по символическим ссылкам и показывать информацию о файле, на который они указывают
  • -t: краткий режим печатает информацию в одну строку

Использование команды stat для получения информации о файле

Вот пример вывода, если вы используете команду stat без каких-либо опций:

stat File: Size: 426 Blocks: 8 IO Block: 4096 regular file Device: 10302h/66306d Inode: 8259907 Links: 1 Access: (0664/-rw-rw-r—) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek) Access: 2020-01-06 09:48: +0530 Modify: 2020-01-05 10:16: +0530 Change: 2020-01-06 19:51: +0530 Birth: —

Давайте рассмотрим вывод:

  • File : имя файла.
  • Size : размер файлов в байтах.
  • Blocks : Количество блоков файловой системы, необходимых файлу на диске.
  • IO Blocks : размер блока файловой системы. Обычно это 4 КБ.
  • Тип файла : это может быть файл, каталог, ссылка, сокеты.
  • Device : номер устройства (идентификатор жесткого диска) в шестнадцатеричном и десятичном виде.
  • Inode : номер инода. Узнайте больше об inode в Linux .
  • Links : Количество жестких ссылок на файл.
  • Access : права доступа к файлам в абсолютном и символическом режимах.
  • Uid : идентификатор пользователя и имя пользователя владельца файла
  • Gid : идентификатор группы и имя группы владельца файла.
  • Access: Этот доступ относится к отметке времени доступа (в последний раз к файлу), также называемой atime.
  • Modify : метка времени изменения (последний раз, когда файл был изменен), также называемая mtime.
  • Change : отметка времени изменения (последний раз, когда файл вызывался), также называемая ctime. Прочтите эту статью, чтобы узнать больше о atime, mtime и ctime .
  • Birth : оригинальная дата создания файла. Это не используется в Linux.

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

Читайте также:  Как вставить содержимое файла pdf в Microsoft Word

[email protected]:$ stat -t 426 8 81b4 1000 1000 10302 8259907 1 0 0 1578284282 1578199593 1578320488 0 4096

Получить информацию о файловой системе с помощью команды stat

Вы можете использовать опцию -f для отображения информации о файловой системе вместо самого файла.

[email protected]:$ stat -f File: «» ID: 65205b688c8b079c Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 61142095 Free: 41522899 Available: 38399635 Inodes: Total: 15597568 Free: 15279217

Как вы можете видеть в выводе, он дает вам следующую информацию:

  • File: имя файла.
  • ID: идентификатор файловой системы в шестнадцатеричном формате.
  • Namelen: максимальная длина для имен файлов.
  • Type: Тип файловой системы.
  • Block size: объем данных, который запрашивает запросы на чтение для оптимальной скорости передачи данных.
  • Fundamental block size: размер блока в файловой системе
  • Block total: свободных блоков и доступных блоков (для пользователей без полномочий root)
  • Inodes: Количество общих инодов и свободных инодов

Используйте команду stat с несколькими файлами

Вы можете запустить команду stat с несколькими файлами.

Вы можете предоставить их имена индивидуально, к примеру:

stat

Или вы также можете предоставить шаблон имени файла:

stat *.txt

Общие понятия:

У каждого объекта в Linux есть свой идентификатор, а так же права доступа, применяемые к данному идентификатору. Идентификатор есть у пользователя — UID, у группы — GID, у файла — inod. Собственно inode является, как идентификатором файла/каталога, так и сущностью, которая содержит в себе информацию о файле/каталоге. Например такую, как: принадлежность к владельцу/группе, тип файла и права доступа к файлу.

Чтобы визуально лицезреть права доступа к файлу или каталогу, его тип и владельцев, а так же, если необходимо, и сам номер inode, необходимо выполнить следующую команду:

Print-server:/# ls -li итого 50 22089 drwxr-xr-x  2 root root  3072 Ноя 15 14:15 bin 32129 drwxr-xr-x  3 root root  1024 Окт  1 18:03 boot 12 lrwxrwxrwx  1 root root    11 Окт  1 15:36 cdrom -> media/cdrom 557 drwxr-xr-x 13 root root  3340 Ноя 17 06:25 dev 30121 drwxr-xr-x 50 root root  4096 Ноя 15 14:46 etc ….

Из вывода команды видно (рассмотрим первую строку):

22089

это есть номер inode

drwxr-xr-x

это есть те самые права доступа и тип файла (об этом ниже)

количество жестких ссылок на файл

имя владельца файла

имя группы владельца файла

размер файла

Ноя 15 14:15

дата создания файла

имя файла/каталога

Для каждого объекта файловой системы в модели полномочий Linux есть три типа полномочий: полномочия чтения (r от read), записи (w от write) и выполнения (x от execution). В полномочия записи входят также возможности удаления и изменения объекта.  Право выполнения можно установить для любого файла. Потенциально, любой файл в системе можно запустить на выполнение, как программу в Windows. В Linux является ли файл исполняемым или нет, определяется не по его расширению, а по правам доступа. Кроме того, эти полномочия указываются отдельно для владельца файла, членов группы файла и для всех остальных.

Читайте также:  Как использовать коды завершения в Bash-скриптах

Собрав вышесказанное в кучу, то есть представив 3 правила (rwx) для трех групп (владелец, группа, остальные) запись прав доступа будет выглядеть вот так: rwx rwx rwx(то есть владельцу разрешено чтение, выполнение и запись, группе разрешено то же самое и остальным). Рассмотрев права на папку /bin в выше приведенном листинге, можно представить такую картину:

drwxr-xr-x+ ||||||||||+наличие дополнительных прав (ACL) |||||||||+-исполнение для всех остальных — разрешено ||||||||+—запись для всех остальных — НЕ разрешено |||||||+—чтение для всех остальных — разрешено ||||||+—-исполнение для группы владельца — разрешено |||||+——запись для группы владельца — НЕ разрешено ||||+——чтение для группы владельца — разрешено |||+——-исполнение для владельца — разрешено ||+———запись для владельца — разрешено |+———чтение для владельца — разрешено +———-тип файла (об этом ниже…)

Кроме указанного представления полномочий доступа (символьного), существует так же и числовое представление. Для общего понимания, приведу таблицу соответствия числового (двоичного и десятичного) значения прав доступа и буквенного:

владелец группа остальные
буквенное rwx r-x r—
числовое (десятичное) 421 401 400
итоговое 7 5 4

В приведенной таблице показано, что право чтения, соответствует значению 4, право записи — 2, право выполнения — 1, отсутствие права — 0, складывая данные показатели, можно представлять и назначать права в числовом виде. Для примера, права rwx r-x r— будут соответствовать значению 754, потому что: rwx (4+2+1=7) r-x (4+0+1=5) r— (4+0+0=4).  Так же, довольно распространена комбинация rw- (4+2+0=6). Думаю данный пример достаточно нагляден.

Особенности прав доступа для каталогов

Права доступа для каталогов немного отличаются. Это в первую очередь связано с тем, что система трактует операции чтения и записи для каталогов отлично от остальных файлов. Право чтения каталога позволяет Вам получить имена (и только имена) файлов, находящихся в данном каталоге. Чтобы получить дополнительную информацию о файлах каталога (например, подробный листинг команды ls -l), системы придется «заглянуть» в метаданные файлов, что требует права на выполнения для каталога. Право на выполнение также потребуется для каталога, в который Вы захотите перейти (т.е. сделать его текущим) с помощью команды cd. Итого, право чтения на каталог, позволяет читать имя содержимого, право выполнения — чтение содержимого с метаданными (правами и др.)