В 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 g = x имя файла
Удалите разрешение на запись для всех пользователей:
chmod a-w имя файла
Отвратительно удалите разрешение на выполнение для других пользователей:
chmod -R o-x имя каталога
Удалите права на чтение, запись и выполнение для всех пользователей, кроме владельца файла:
chmod og-rwx имя файла
То же самое можно сделать, используя следующую форму:
chmod og = имя файла
Предоставьте права на чтение, запись и выполнение владельцу файла, права на чтение для группы файла и запретите права всем другим пользователям:
chmod u = rwx, g = r, o = имя файла
Числовой метод #
Синтаксис chmod
команда при использовании символьного режима имеет следующий формат:
chmod [OPTIONS] НОМЕР ФАЙЛА…
При использовании числового режима вы можете установить разрешения для всех трех классов пользователей (владелец, группа и все остальные) одновременно.
Номер разрешения может быть трех- или четырехзначным. Когда используется трехзначный номер, первая цифра представляет права владельца файла, вторая - группу файла, а последняя - всех остальных пользователей.
Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:
р
(читать) = 4ш
(написать) = 2Икс
(выполнить) = 1- нет разрешений = 0
Количество разрешений определенного класса пользователей представлено суммой значений разрешений для этой группы.
Чтобы узнать права доступа к файлу в числовом режиме, просто вычислите итоговые значения для всех классов пользователей. Например, чтобы предоставить права на чтение, запись и выполнение владельцу файла, права на чтение и выполнение для группы файла и только на чтение для всех остальных пользователей, вы должны сделать следующее:
- Владелец: rwx = 4 + 2 + 1 = 7
- Группа: r-x = 4 + 0 + 1 = 5
- Другое: r-x = 4 + 0 + 0 = 4
Используя метод, описанный выше, мы подходим к числу 754
, который представляет желаемые разрешения.
Чтобы настроить Setuid
, Setgid
, а также липкий кусочек
флаги, используйте четырехзначный номер.
Когда используется четырехзначный номер, первая цифра имеет следующее значение:
- setuid = 4
- setgid = 2
- липкий = 1
- без изменений = 0
Следующие три цифры имеют то же значение, что и при использовании трехзначного номера.
Если первая цифра равна 0, ее можно не указывать, а режим можно представить тремя цифрами. Числовой режим 0755
такой же как 755
.
Для вычисления числового режима вы также можете использовать другой метод (двоичный метод), но он немного сложнее. Знания, как рассчитать числовой режим с использованием 4, 2 и 1, достаточно для большинства пользователей.
Вы можете проверить права доступа к файлу в числовом формате, используя стат
команда:
stat -c "% a" имя_файла
Вот несколько примеров использования chmod
команда в числовом режиме:
Предоставьте владельцу файла разрешения на чтение и запись и только на чтение членам группы и всем другим пользователям:
chmod 644 имя каталога
Предоставьте владельцу файла права на чтение, запись и выполнение, права на чтение и выполнение для членов группы и никаких разрешений для всех остальных пользователей:
chmod 750 имя каталога
Предоставьте разрешения на чтение, запись и выполнение, а также закрепите бит для данного каталога:
chmod 1777 имя каталога
Рекурсивно установить разрешения на чтение, запись и выполнение для владельца файла и отсутствие разрешений для всех других пользователей в данном каталоге:
chmod -R 700 имя каталога
Заключение #
В Linux доступ к файлам ограничен с помощью разрешений, атрибутов и прав собственности на файлы. Чтобы изменить права доступа к файлу, используйте chmod
команда.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.