Введение в разрешения Linux

Вступление

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

В этом учебном пособии мы рассмотрим, как просматривать и понимать права собственности на Linux и разрешения. Если вы ищете учебное пособие по изменению разрешений, ознакомьтесь с этим руководством: Основы прав доступа Linux и использование Umask в VPS

Предпосылки

Убедитесь, что вы поняли понятия, описанные в предыдущих руководствах этой серии:

  • Введение в терминал Linux
  • Основные возможности Linux и управления файлами

Доступ к Linux-серверу не является обязательным, чтобы следовать этому руководству, но наличие одного из них позволит вам получить некоторые из первых рук. Если вы хотите установить его, ознакомьтесь с этой ссылкой для получения справки.

О пользователе

Как упоминалось во введении, Linux — многопользовательская система. Мы должны понять основы пользователей и групп Linux, прежде чем мы поговорим о правах собственности и разрешениях, поскольку они являются сущностями, к которым относятся права собственности и разрешения. Давайте начнем с основ, что есть у пользователей.

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

Легкий способ просмотра всех пользователей в системе — посмотреть содержимое /etc/passwdфайла. Каждая строка в этом файле содержит информацию об одном пользователе, начиная с его имени пользователя (имя перед первым :). Распечатайте passwdфайл с помощью этой команды:

cat /etc/passwd

Суперпользователь

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

Также возможно настроить другие учетные записи пользователей с возможностью принимать «права суперпользователя». Фактически, создание нормального пользователя, обладающего sudoпривилегиями для задач системного администрирования, считается лучшей практикой.

О группах

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

Простой способ просмотра всех групп и их членов — это посмотреть в /etc/groupфайл на сервере. Мы не будем рассматривать управление группами в этой статье, но вы можете запустить эту команду, если вам интересны ваши группы:

cat /etc/group

Теперь, когда вы знаете, что такое пользователи и группы, давайте поговорим о владении файлами и разрешениях!

Просмотр прав собственности и разрешений

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

Наиболее распространенным способом просмотра разрешений файла является использование lsс длинной листинговой опцией, например ls -l myfile. Если вы хотите просмотреть разрешения всех файлов в вашем текущем каталоге, выполните команду без аргумента, например:

ls -l

Подсказка. Если вы находитесь в пустом домашнем каталоге и еще не создали файлы для просмотра, вы можете следить за ним, указав содержимое /etcкаталога, выполнив следующую команду:ls -l /etc

Вот пример скриншота о том, как может выглядеть вывод, с метками каждого столбца вывода:

ls -l

Обратите внимание, что перечислены режимы каждого файла (который содержит разрешения), владелец, группа и имя. Помимо столбца « Режим» этот список довольно легко понять. Чтобы объяснить, что означают все эти буквы и дефисы, давайте разделим столбец Mode на его компоненты.

Общие сведения

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

Разбивка режима и разрешений

Тип файла

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

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

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

Классы разрешений

Из диаграммы мы знаем, что столбец Mode указывает тип файла, за которым следуют три триады или классы разрешений: пользователь (владелец), группа и другие. Порядок классов согласован во всех дистрибутивах Linux.

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

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

Чтение символических разрешений

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

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

  • Чтение : указано rв первой позиции
  • Запись : обозначается буквой a wво втором положении
  • Выполнить : указывается xв третьей позиции. В некоторых особых случаях здесь может быть и другой характер

Дефис ( -) вместо одного из этих символов указывает, что соответствующее разрешение недоступно для соответствующего класса. Например, если групповая триада для файла r--, файл является «только для чтения» для группы, связанной с файлом.

Понимание чтения, записи, выполнения

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

Ниже приведена краткая разбивка доступа, которую предоставляют три основных типа разрешений пользователю.

Читать

Для обычного файла разрешение чтения позволяет пользователю просматривать содержимое файла.

Для каталога разрешение чтения позволяет пользователю просматривать имена файла в каталоге.

Написать

Для обычного файла разрешение записи позволяет пользователю изменять и удалять файл.

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

казнить

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

Для каталога разрешение на выполнение позволяет пользователю получать доступ или перемещаться в (т. Е. cd) И получать доступ к метаданным о файлах в каталоге (информация, указанная в a ls -l).

Примеры режимов (и разрешений)

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

  • -rw-------: Файл, доступ к которому принадлежит только его владельцу
  • -rwxr-xr-x: Файл, исполняемый каждым пользователем в системе. Файл «world-executable»
  • -rw-rw-rw-: Файл, открытый для изменения всеми пользователями системы. Файл «world-writable»
  • drwxr-xr-x: Каталог, который каждый пользователь в системе может читать и получать доступ
  • drwxrwx---: Каталог, который может быть изменен (включая его содержимое) его владельцем и группой
  • drwxr-x---: Каталог, доступный его группе

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

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

Изменение прав собственности и разрешений

Чтобы этот учебник был прост, мы не будем описывать, как изменить права собственности на файлы и разрешения здесь. Чтобы узнать , как использовать chownchgrpи chmodдля выполнения этих задач, обратитесь к этому руководству: Linux разрешений Основы и как использовать UMASK на VPS .

Заключение

Теперь у вас должно быть хорошее представление о том, как права собственности и разрешения работают в Linux.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *