Linux

Понимание прав доступа к файлам в Linux

Понимание прав доступа к файлам в Linux

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

Разрешения для файлов Linux #

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

Право собственности на файл можно изменить с помощью Chown а также chgrp команды.

К каждому классу пользователей применяются три типа прав доступа к файлам:

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

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

ls -l имя_файла
-rw-r - r-- 12 пользователей Linux 12.0K 28 апр, 10:10 имя_файла | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Группа | | | | | + -------------------> 6. Владелец | | | | + --------------------------> 5. Альтернативный метод доступа | | | + ----------------------------> 4. Другие разрешения | | + -------------------------------> 3. Групповые разрешения | + ----------------------------------> 2. Права владельца + ------------------------------------> 1. Тип файла 

Первый символ указывает на тип файла. Это может быть обычный файл (-), каталог (d), символическая ссылка (л) или другие особые типы файлов. Следующие девять символов представляют права доступа к файлу, три тройки по три символа каждая. Первый триплет показывает разрешения владельца, второй - разрешения группы, а последний триплет - разрешения для всех остальных.

В приведенном выше примере (rw-r - r--) означает, что у владельца файла есть права на чтение и запись (rw-), группа и другие имеют только права на чтение (р--).

Права доступа к файлам имеют разное значение в зависимости от типа файла.

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

Влияние разрешений на файлы

РазрешениеПерсонажЗначение в файле
Читать-Файл не читается. Вы не можете просматривать содержимое файла.
рФайл доступен для чтения.
Писать-Файл не может быть изменен или изменен.
шФайл можно изменить или модифицировать.
Выполнять-Файл не может быть выполнен.
ИксФайл можно запустить.
sЕсли найти в Пользователь триплет, он устанавливает Setuid немного. Если найти в группа триплет, он устанавливает сетгид немного. Это также означает, что Икс установлен флаг.
Когда Setuid или же Setgid флаги устанавливаются для исполняемого файла, файл выполняется с правами владельца и / или группы.
SТакой же как s, но Икс флаг не установлен. Этот флаг редко используется для файлов.
тЕсли найти в другие триплет, он устанавливает липкий немного.
Это также означает, что Икс установлен флаг. Этот флаг бесполезен для файлов.
ТТакой же как, т но Икс флаг не установлен. Этот флаг бесполезен для файлов.

Влияние разрешений на каталоги (папки)

Каталоги - это особые типы файлов, которые могут содержать другие файлы и каталоги.

РазрешениеПерсонажЗначение в каталоге
Читать-Содержимое каталога не может быть отображено.
рСодержимое каталога может быть показано.
(е.грамм., Вы можете перечислить файлы внутри каталога с помощью ls.)
Писать-Содержимое каталога не может быть изменено.
шСодержимое каталога может быть изменено.
(е.грамм., Вы можете создавать новые файлы, удалять файлы… и т. Д.)
Выполнять-Каталог нельзя изменить на.
ИксПо каталогу можно перемещаться, используя CD.
sЕсли найти в Пользователь триплет, он устанавливает Setuid немного. Если найти в группа триплет устанавливает Setgid немного. Это также означает, что Икс установлен флаг. Когда сетгид установлен флаг для каталога, новые файлы, созданные в нем, наследуют идентификатор группы каталогов (GID) вместо идентификатора основной группы пользователя, создавшего файл.
Setuid не влияет на каталоги.
SТакой же как s, но Икс флаг не установлен. Этот флаг бесполезен для каталогов.
тЕсли найти в другие триплет, он устанавливает липкий немного.
Это также означает, что Икс установлен флаг. Когда для каталога установлен бит закрепления, только владелец файла, владелец каталога или административный пользователь могут удалять или переименовывать файлы в каталоге.
ТТакой же как т, но Икс флаг не установлен. Этот флаг бесполезен для каталогов.

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

Права доступа к файлу можно изменить с помощью chmod команда. Только root, владелец файла или пользователь с привилегиями sudo могут изменять права доступа к файлу. Будьте особенно осторожны при использовании chmod, особенно при рекурсивном изменении разрешений. Команда может принимать в качестве аргументов один или несколько файлов и / или каталогов, разделенных пробелом.

Разрешения можно указать с помощью символьного режима, числового режима или справочного файла.

Символьный (текстовый) метод #

Синтаксис chmod команда при использовании символьного режима имеет следующий формат:

chmod [OPTIONS] [ugoa…] [- + =] perms… [,…] FILE… 

Первый набор флагов ([угоа…]), флаги пользователей, определяет классы пользователей, для которых изменяются права доступа к файлу.

Когда флаг пользователя опущен, по умолчанию используется а.

Второй набор флагов ([- + =]), флаги операции, определяют, должны ли быть удалены, добавлены или установлены разрешения:

Разрешения (химическая завивка… ) явно задаются с помощью нуля или одной или нескольких из следующих букв: р, ш, Икс, Икс, s, а также т. Используйте одну букву из набора ты, грамм, а также о при копировании разрешений из одного класса пользователей в другой.

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

Вот несколько примеров использования chmod команда в символьном режиме:

Числовой метод #

Синтаксис chmod команда при использовании символьного режима имеет следующий формат:

chmod [OPTIONS] НОМЕР ФАЙЛА… 

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

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

Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:

Количество разрешений определенного класса пользователей представлено суммой значений разрешений для этой группы.

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

Используя метод, описанный выше, мы подходим к числу 754, который представляет желаемые разрешения.

Чтобы настроить Setuid, Setgid, а также липкий кусочек флаги, используйте четырехзначный номер.

Когда используется четырехзначный номер, первая цифра имеет следующее значение:

Следующие три цифры имеют то же значение, что и при использовании трехзначного номера.

Если первая цифра равна 0, ее можно не указывать, а режим можно представить тремя цифрами. Числовой режим 0755 такой же как 755.

Для вычисления числового режима вы также можете использовать другой метод (двоичный метод), но он немного сложнее. Знания, как рассчитать числовой режим с использованием 4, 2 и 1, достаточно для большинства пользователей.

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

stat -c "% a" имя_файла 

Вот несколько примеров использования chmod команда в числовом режиме:

Заключение #

В Linux доступ к файлам ограничен с помощью разрешений, атрибутов и прав собственности на файлы. Чтобы изменить права доступа к файлу, используйте chmod команда.

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

Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...
Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...
OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...