- Понимание прав доступа к файлам в Linux
- Understanding Linux File Permissions
- В Linux права доступа к файлам, атрибуты и владение управляют уровнем доступа, который система обрабатывает, а пользователи имеют к файлам. Это гарантирует, что только авторизованные пользователи и процессы могут получить доступ к определенным файлам и каталогам.
- Права доступа к файлам в Linux
- Изменение прав доступа к файлу
- Символьный (текстовый) метод
- Числовой метод
- Заключение
- Права доступа в Linux. Команды CHMOD и ls -ld
- Введение
- Просмотр разрешений
- Изменить разрешения
- Разрешения для каталогов
- Пользователь root
- Основная безопасность
- Вывод
Понимание прав доступа к файлам в Linux
Understanding Linux File Permissions
В Linux права доступа к файлам, атрибуты и владение управляют уровнем доступа, который система обрабатывает, а пользователи имеют к файлам. Это гарантирует, что только авторизованные пользователи и процессы могут получить доступ к определенным файлам и каталогам.
Права доступа к файлам в Linux
Базовая модель разрешений Linux работает, связывая каждый системный файл с владельцем и группой и назначая права доступа для трех разных классов пользователей:
- Владелец файла.
- Члены группы.
- Другие (все остальные).
Собственности файла можно изменить с помощью chown и chgrp команды.
К каждому классу пользователей применяются три типа прав доступа к файлам:
- Разрешение на чтение.
- Разрешение на запись.
- Разрешение на выполнение.
Эта концепция позволяет вам контролировать, какие пользователи могут читать файл, записывать в файл или выполнять файл.
Чтобы просмотреть права доступа к файлу, используйте ls команду:
Первый символ указывает тип файла. Это может быть обычный файл ( — ), каталог ( d ), символическая ссылка ( l ) или другие специальные типы файлов. Следующие девять символов представляют права доступа к файлу, три тройки по три символа каждая. Первый триплет показывает разрешения владельца, второй — разрешения группы, а последний триплет — разрешения для всех остальных.
В приведенном выше примере ( rw-r—r— ) означает, что владелец файла имеет права на чтение и запись ( rw- ), а группа и другие пользователи имеют только права на чтение ( r— ).
Права доступа к файлам имеют разное значение в зависимости от типа файла.
Каждый из трех триплетов разрешений может состоять из следующих символов и иметь разные эффекты, в зависимости от того, установлены ли они для файла или для каталога:
Влияние разрешений на файлы
Разрешение | Метка | Значение в файле |
---|---|---|
Чтение Read | — | Файл не читается. Вы не можете просматривать содержимое файла. |
r | Файл доступен для чтения. | |
Запись Write | — | Файл не может быть изменен или изменен. |
w | Файл можно изменить или модифицировать. | |
Выполнение Execute | — | Файл не может быть выполнен. |
x | Файл можно запустить. | |
s | Если он находится в user триплете, он устанавливает setuid бит. Если он находится в group триплете, он устанавливает setgid бит. Это также означает, что x флаг установлен. Когда для исполняемого файла установлены флаги setuid или setgid , файл выполняется с правами владельца и / или группы. | |
S | То же s , но x флаг не установлен. Этот флаг редко используется для файлов. | |
t | Если он находится в others триплете, он устанавливает sticky бит. Это также означает, что x флаг установлен. Этот флаг бесполезен для файлов. | |
T | То же, t но x флаг не установлен. Этот флаг бесполезен для файлов. |
Влияние разрешений на каталоги (папки)
Каталоги — это особые типы файлов, которые могут содержать другие файлы и каталоги.
Разрешение | Метка | Значение в каталоге |
---|---|---|
Чтение Read | — | Содержимое каталога не может быть отображено. |
r | Можно показать содержимое каталога. (например, вы можете перечислить файлы внутри каталога с помощью ls .) | |
Запись Write | — | Содержимое каталога не может быть изменено. |
w | Содержимое каталога может быть изменено. (например, вы можете создавать новые файлы , удалять файлы и т. д.) | |
Выполнение Execute | — | Каталог не может быть изменен на. |
x | По каталогу можно перемещаться с помощью cd . | |
s | Если он находится в user триплете, он устанавливает setuid бит. Если он находится в group триплете, он устанавливает setgid бит. Это также означает, что x флаг установлен. Когда setgid для каталога установлен флаг, новые файлы, созданные в нем, наследуют идентификатор группы каталогов (GID) вместо идентификатора основной группы пользователя, создавшего файл. setuid не влияет на каталоги. | |
S | То же s , но x флаг не установлен. Этот флаг бесполезен для каталогов. | |
t | Если он находится в others триплете, он устанавливает sticky бит. Это также означает, что x флаг установлен. Когда для каталога установлен бит закрепления, только владелец файла, владелец каталога или административный пользователь могут удалять или переименовывать файлы в каталоге. | |
T | То же t , но x флаг не установлен. Этот флаг бесполезен для каталогов. |
Изменение прав доступа к файлу
Права доступа к файлу можно изменить с помощью chmod команды. Только root, владелец файла или пользователь с привилегиями sudo могут изменять права доступа к файлу. Будьте особенно осторожны при использовании chmod , особенно при рекурсивном изменении разрешений. Команда может принимать в качестве аргументов один или несколько файлов и / или каталогов, разделенных пробелом.
Разрешения можно указать с помощью символьного режима, числового режима или справочного файла.
Символьный (текстовый) метод
Синтаксис chmod команды при использовании символьного режима имеет следующий формат:
Первый набор flags ( [ugoa…] ), флаги пользователей, определяет классы пользователей, для которых изменяются права доступа к файлу.
- u — Владелец файла.
- g — Пользователи, входящие в группу.
- o — Все остальные пользователи.
- a — Все пользователи, идентичные ugo .
Когда флаг пользователя опущен, по умолчанию используется a .
Второй набор flags ( [-+=] ), флаги операции, определяет, следует ли удалить, добавить или установить разрешения:
- — — Удаляет указанные разрешения.
- + — Добавляет указанные разрешения.
- = — Изменяет текущие разрешения на указанные разрешения. Если после = символа не указаны разрешения, все разрешения указанного класса пользователей удаляются.
Разрешения ( perms. ) явно устанавливается с помощью либо ноль , либо один или несколько из следующих букв: r , w , x , X , s , и t . Используйте одну букву из набора u , g и o при копировании разрешений из одного класса пользователей в другой.
При настройке разрешений для более чем одного пользовательского класса ( [,…] ) используйте запятые (без пробелов) для разделения символьных режимов.
Вот несколько примеров того, как использовать chmod команду в символьном режиме:
Дайте членам группы разрешение на выполнение файла, но не на чтение и запись в него:
Удалите разрешение на запись для всех пользователей:
Отвратительно удалите разрешение на выполнение для других пользователей:
Удалите права на чтение, запись и выполнение для всех пользователей, кроме владельца файла:
То же самое можно сделать с помощью следующей формы:
Предоставьте права на чтение, запись и выполнение владельцу файла, права на чтение для группы файла и запретите права всем другим пользователям:
Числовой метод
Синтаксис команды chmod при использовании символьного режима имеет следующий формат:
При использовании числового режима вы можете установить разрешения для всех трех классов пользователей (владельца, группы и всех остальных) одновременно.
Номер разрешения может быть трех- или четырехзначным. Когда используется трехзначный номер, первая цифра представляет права владельца файла, вторая — группу файла, а последняя — всех остальных пользователей.
Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:
- r (читать) = 4
- w (написать) = 2
- x (выполнить) = 1
- нет разрешений = 0
Количество разрешений определенного класса пользователей представлено суммой значений разрешений для этой группы.
Чтобы узнать права доступа к файлу в числовом режиме, просто подсчитайте итоговые значения для всех классов пользователей. Например, чтобы предоставить права на чтение, запись и выполнение владельцу файла, права на чтение и выполнение для группы файла и только на чтение для всех остальных пользователей, вы должны сделать следующее:
- Владелец: rwx = 4 + 2 + 1 = 7
- Группа: rx = 4 + 0 + 1 = 5
- Другое: rx = 4 + 0 + 0 = 4
Используя описанный выше метод, мы подходим к числу 754 , которое представляет желаемые разрешения.
Для того, чтобы настроить setuid , setgid и sticky bit флаги, используйте номер четыре цифры.
Когда используется четырехзначный номер, первая цифра имеет следующее значение:
- setuid = 4
- setgid = 2
- липкий = 1
- без изменений = 0
Следующие три цифры имеют то же значение, что и при использовании трехзначного номера.
Если первая цифра равна 0, ее можно не указывать, а режим можно представить тремя цифрами. Числовой режим 0755 такой же, как 755 .
Для вычисления числового режима вы также можете использовать другой метод (двоичный метод), но он немного сложнее. Знания, как рассчитать числовой режим с использованием 4, 2 и 1, достаточно для большинства пользователей.
Вы можете проверить права доступа к файлу в числовом формате с помощью stat команды:
Вот несколько примеров того, как использовать chmod команду в числовом режиме:
Предоставьте владельцу файла разрешения на чтение и запись и только на чтение членам группы и всем остальным пользователям:
Предоставьте владельцу файла права на чтение, запись и выполнение, права на чтение и выполнение для членов группы и никаких разрешений для всех остальных пользователей:
Предоставьте разрешения на чтение, запись и выполнение, а также закрепите бит для данного каталога:
Рекурсивно установить разрешения на чтение, запись и выполнение для владельца файла и отсутствие разрешений для всех других пользователей в данном каталоге:
Заключение
В Linux доступ к файлам ограничен разрешениями, атрибутами и правами собственности на файлы. Чтобы изменить права доступа к файлу, используйте chmod команду.
Источник
Права доступа в Linux. Команды CHMOD и ls -ld
В этой статье мы узнаем, как установить разрешения Linux для файлов и каталогов. Разрешения определяют, может ли конкретное лицо взаимодействовать с файлом или каталогом. Таким образом, разрешения важны для создания безопасной среды.
Например, вы не хотите, чтобы другие люди изменяли ваши файлы. Также, чтобы системные файлы были защищены от повреждения (случайного или преднамеренного). К счастью, с разрешениями в системе Linux довольно легко работать.
Введение
Разрешения Linux диктуют 3 вещи, которые вы можете делать с файлом: чтение, запись и выполнение. Они упоминаются в Linux одной буквой каждая.
- r read — вы можете просмотреть содержимое файла.
- w write — вы можете изменить содержимое файла.
- x execute — вы можете выполнить или запустить файл, если это программа или скрипт.
Для каждого файла мы определяем 3 группы людей, для которых мы можем указать разрешения.
- владелец — один человек, которому принадлежит файл. (обычно человек, который создал файл, но право собственности может быть предоставлено кому-то еще некоторыми пользователями)
- группа — каждый файл принадлежит одной группе.
- другие — все остальные, кто не входит в группу или владельца.
Три убеждения и три группы людей.
Это все, что есть на самом деле с разрешениями. Теперь давайте посмотрим, как мы можем просмотреть и изменить их.
Просмотр разрешений
Для просмотра прав доступа к файлу мы используем параметр длинного списка для команды ls.
ls -l [путь]
В приведенном выше примере первые 10 символов вывода — это то, на что мы смотрим, чтобы определить разрешения.
- Первый символ определяет тип файла. Если это тире (-), то это обычный файл.
- Следующие 3 символа представляют разрешения для владельца. Буква обозначает наличие разрешения, а тире (-) обозначает отсутствие разрешения. В этом примере владелец имеет все разрешения (чтение, запись и выполнение).
- Следующие 3 символа представляют разрешения для группы. В этом примере группа имеет возможность читать, но не писать или выполнять. Обратите внимание, что порядок разрешений всегда читается, затем записывается и выполняется.
- Наконец, последние 3 символа представляют разрешения для других (или всех остальных). В этом примере у них есть разрешение на выполнение и больше ничего.
Изменить разрешения
Чтобы изменить права доступа к файлу или каталогу, мы используем команду chmod.
chmod [права доступа] [путь]
У chmod есть аргументы разрешения, которые состоят из 3 компонентов
- Для кого мы меняем разрешение? [ugoa] — пользователь (или владелец), группа, другие, все
- Предоставляем ли мы или отменяем разрешение — обозначается плюсом (+) или минусом (-)
- Какое разрешение мы устанавливаем? — прочитать (r), написать (w) или выполнить (x)
Следующие примеры сделают их использование более понятным.
Предоставьте разрешение на выполнение группе. Затем удалите разрешение на запись для владельца.
Не хотите назначать разрешения индивидуально? Мы можем назначить несколько разрешений одновременно.
Может показаться странным, что как владелец файла мы можем лишить нас возможности читать, записывать и выполнять этот файл, но есть веские причины, по которым мы можем захотеть это сделать. Например, может быть, у нас есть файл с данными, которые мы не хотим случайно изменить. Хотя мы можем удалить эти разрешения, мы не можем лишить нас возможности устанавливать эти разрешения. В итоге, мы всегда имеем контроль над каждым файлом.
Разрешения для каталогов
Серии разрешений могут использоваться для каталогов, но они ведут себя несколько иначе.
- r — у вас есть возможность прочитать содержимое каталога (т.е. сделать ls)
- w — у вас есть возможность записи в каталог (т.е. создавать файлы и каталоги)
- х — у вас есть возможность войти в этот каталог (например, CD)
Давайте посмотрим некоторые из них в действии
Обратите внимание, когда мы запускали ls, включена опция -d, которая обозначает каталог. Обычно, если мы даем ls аргумент, который является каталогом, он будет перечислять содержимое каталога. Однако в этом случае нас интересуют права доступа к каталогу, а опция -d позволяет нам получить это.
На первый взгляд эти разрешения могут показаться немного запутанными. Нам нужно помнить, что эти разрешения предназначены для самого каталога, а не для файлов внутри. Например, у вас может быть каталог, для которого у вас нет разрешения на чтение. В нем могут быть файлы, для которых у вас есть разрешение на чтение. Пока вы знаете, что файл существует и его имя, вы все равно можете прочитать файл.
Пользователь root
В системе Linux обычно есть только 2 человека, которые могут изменять права доступа к файлу или каталогу. Владелец файла или каталога и пользователь root.
Пользователь root — это суперпользователь, которому разрешено делать все и вся в системе. Обычно администраторы системы являются единственными, кто имеет доступ к корневой учетной записи и использует ее для обслуживания системы.
Обычные пользователи в основном имеют доступ к файлам и каталогам в своем домашнем каталоге. Впоследствии, это помогает поддерживать безопасность и стабильность системы.
Основная безопасность
Ваш домашний каталог — это ваше личное пространство в системе.
Большинство пользователей дают себе полные права на чтение, запись и выполнение для своего домашнего каталога. Между тем, для группы или других пользователей никаких разрешений нет. Впоследствии, некоторые пользователи по разным причинам могут иметь несколько иную настройку.
Как правило, для оптимальной безопасности вы не должны предоставлять группе или другим пользователям права на запись в ваш домашний каталог. Между тем, иногда выполнение без чтения может оказаться полезным. Это позволяет людям входить в ваш домашний каталог, но не позволяет им видеть, что там.
Обычно система запускает веб-сервер и позволяет пользователям иметь свое собственное веб-пространство. Обычная настройка заключается в том, что если вы поместите каталог в свой домашний каталог с именем public_html, то веб-сервер будет читать и отображать его содержимое. Однако веб-сервер работает от имени другого пользователя, поэтому по умолчанию он не будет иметь доступа для доступа и чтения этих файлов. Это ситуация, когда необходимо предоставить команду execute для вашего домашнего каталога, чтобы пользователь веб-сервера мог получить доступ к необходимым ресурсам.
Вывод
В данной статье мы познакомились со следующими командами:
- CHMOD — измените права доступа к файлу или каталогу.
- ls -ld — просмотр разрешений для определенного каталога.
Источник