Показать свойства файла линукс

Атрибуты файлов в 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) позволяет изменять файл. При этом возможно его удаление и/или переименование файла, но только в том случае, если заданы соответствующие биты для его родительского каталога, поскольку именно в его записях хранятся имена файлов.

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

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

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

Читайте также:  Все для восстановления windows server 2012

Специальные биты режимов доступа 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.

Источник

Команда Chattr в Linux (атрибуты файлов)

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

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

В этой статье объясняется, как использовать команду chattr для изменения атрибутов файлов в файловых системах Linux.

chattr Синтаксис

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

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

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

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

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

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

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

chattr Пример

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

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

Читайте также:  Windows group policy error

Вывод ниже показывает, что установлен только флаг e :

Чтобы сделать файл неизменяемым, добавьте флаг i с оператором + к существующим атрибутам:

Мы используем sudo, потому что только root может изменить неизменяемый флаг.

Подтвердите, что атрибут добавлен:

Чтобы отменить изменения и удалить неизменяемый флаг, используйте оператор — :

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

Последний оператор, который вы можете использовать, — это оператор = . Например, чтобы установить атрибут e как единственный атрибут, вы должны запустить:

Обратите внимание, что оператор и флаг заключены в кавычки, чтобы избежать интерпретации оболочки символа + .

Выводы

chattr — это инструмент командной строки для изменения атрибутов файлов в файловой системе Linux.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Ubuntu Documentation

Чтобы просмотреть информацию о файле или папке, нажмите на них правой кнопкой и выберите Свойства . Можно также выбрать файл и нажать Alt + Enter .

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

Ниже описана информация, отображаемая на вкладке Основные . Кроме неё, имеются вкладки Права и Открыть в . Для некоторых типов файлов, таких как изображения и видео, будет присутствовать дополнительная вкладка, содержащая информацию, например, о размерах, длительности и кодеке.

Основные свойства

Изменив это поле, можно переименовать файл. Существует и другой способ переименования файла: смотрите Переименование файла или папки .

This helps you identify the type of the file, such as PDF document, OpenDocument Text, or JPEG image. The file type determines which applications can open the file, among other things. For example, you can’t open a picture with a music player. See Открытие файлов в другом приложении for more information on this.

Тип MIME файла показывается в скобках; тип MIME — это стандартный способ, который используют компьютеры для определения типа файла.

Это поле отображается при просмотре свойств папок, а не файлов. С его помощью можно узнать количество объектов в папке. Если папка включает в себя другие папки, каждая вложенная папка считается за один объект, даже если она сама содержит какие-то объекты. Каждый файл тоже считается одним объектом. Если папка пуста, в этом поле отображается «ничего» .

Это поле отображается для файлов (но не для папок). Размер файла сообщает, сколько места на диске занимает этот файл. Он также может быть индикатором того, сколько времени займёт скачивание файла или отправка его по электронной почте (чем больше размер, тем дольше он будет скачиваться или отправляться).

Размеры могут отображаться в байтах, КБ, МБ или ГБ; в последних трёх случаях в скобках также указывается размер в байтах. Технически, 1 КБ = 1024 байта, 1 МБ = 1024 КБ и так далее.

The location of each file on your computer is given by its absolute path . This is a unique “address” of the file on your computer, made up of a list of the folders that you would need to go into to find the file. For example, if Jim had a file called Resume.pdf in his Home folder, its parent folder would be /home/jim and its location would be /home/jim/Resume.pdf .

Отображается только для папок. Показывает, сколько свободного места доступно на диске, на котором находится эта папка. Это полезно, если нужно проверить, не заполнен ли диск.

Дата и время последнего открытия файла.

Дата и время последнего изменения и сохранения файла.

Источник

Команды Linux для работы с файлами

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

В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:

  • ls — список файлов в директории;
  • cd — переход между директориями;
  • rm — удалить файл;
  • rmdir — удалить папку;
  • mv — переместить файл;
  • cp — скопировать файл;
  • mkdir — создать папку;
  • ln — создать ссылку;
  • chmod — изменить права файла;
  • touch — создать пустой файл.
Читайте также:  Выключение компьютера linux через консоль

А теперь перейдем к подробному рассмотрению всех этих команд.

1. ls — просмотр содержимого папки

Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:

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

Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:

Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:

2. cd — изменить папку

Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:

Вы также можете указать полный путь к папке:

Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:

Вы также можете вернуться в предыдущую рабочую папку:

3. rm — удалить файлы

Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:

Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:

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

rm -r /home/user/photo/

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

4. rmdir — удалить папку

Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:

Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.

5. mv — перемещение файлов

Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:

mv file newfile

Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/

mv file /home/user/tmp/

6. cp — копирование файлов

Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.

cp file newfile

Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:

cp -r /etc /etc_back

7. mkdir — создать папку

Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:

Если нужно создать папку в другом каталоге, укажите полный путь к нему:

8. ln — создание ссылок

Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:

ln -s /home/user/Downloads/ /home/user/test/

Для создания жесткой ссылки никаких опций задавать не нужно:

ln /home/user/Downloads/ /home/user/test/

9. chmod — изменить права

chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:

chmod +x script.sh

Чтобы убрать флаг исполняемый используйте опцию -x:

chmod -x script.sh

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

10. touch — создать файл

Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:

Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.

11. mc

Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:

sudo apt install mc

После завершения установки достаточно выполнить команду mc:

Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:

Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.

Выводы

В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!

Источник

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