Понимание разрешений Linux и использования chmod

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

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

Разрешения и уровни Linux

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

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

Чтение(Read) , запись и выполнение представлены либо символическими символами, либо восьмеричными числами. Например, если вы выполните ls -l в каталоге с некоторыми файлами, вы увидите символическое представление разрешений.

Права доступа записываются следующим образом: первый бит либо тире, либо буква d. Тире(Dash) означает, что это файл, а d означает каталог. Обратите внимание, что первый бит также может быть l , если имя файла является ссылкой. Далее идут три группы по три бита. Первый бит в каждой группе предназначен для чтения, второй бит для записи и третий бит для выполнения. Первые три бита для владельца, вторые три бита для группы и третьи три бита для других. Вот более наглядное объяснение.

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

Если вы посмотрите на вывод команды ls -l, вы заметите, что мой текстовый файл практики имеет следующие разрешения:

-rw-rw-rw-

Это означает, что у всех есть права только на чтение/запись файла. Вот еще один пример:

drwxr--r--

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

Представление восьмеричного числа

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

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

Разрешение на чтение представлено 4, запись — 2 и выполнение — 1. Все, что вам нужно сделать, это сложить их, чтобы получить восьмеричное разрешение. Например, давайте возьмем пример выше, где у всех есть все разрешения:

-rwxrwxrwx

У владельца есть rwx, поэтому мы добавим 4 + 2 + 1, чтобы получить значение 7. Мы делаем то же самое для группы и то же самое для других. Окончательное восьмеричное значение — 777. Давайте посмотрим на пример, где мы давали только права на чтение/запись:

-rw-rw-rw-

Первое восьмеричное число будет 4 + 2, так как мы добавляем чтение и запись. Второе будет таким же, как и третье восьмеричное число. Здесь у нас есть окончательное восьмеричное значение 666.

Так что теперь попробуем по-другому. Скажем, мы хотим знать, что представляет собой разрешение 755 ? Ну, это довольно легко выяснить, если разбить его по отдельным числам. Первое число — 7, которое мы можем получить, только добавив 4 + 2 + 1, что означает, что владелец имеет разрешение на чтение/запись/выполнение. Пять можно получить, только добавив 4 + 1, что означает, что группа и другие пользователи имеют права на чтение и выполнение.

Надеюсь(Hopefully) , это хорошее объяснение того, как представлять разрешения в Linux с помощью восьмеричных чисел. Это довольно прямолинейно в целом.

Использование chmod для изменения разрешений

Теперь, когда мы поняли, как читать разрешения, давайте поговорим о том, как мы можем их изменить. Самая простая утилита для этой цели — команда chmod. Вот как это работает. Лучший способ объяснить команду — рассмотреть пример.

Начнем с разрешений, о которых мы говорили выше, а именно:

-rw-rw-rw-

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

Точная команда

chmod a+x filename

Синтаксис следующий: буква или буквы, обозначающие владельца ( u ), группу ( g ), другого ( o ) или все ( a ), за которыми следует + для добавления разрешений или a - для удаления разрешений, а затем буква для разрешение ( r для чтения, w для записи и x для выполнения).

В приведенном выше примере я добавил разрешение на выполнение для всех пользователей. Результат, как вы можете видеть на снимке экрана выше, — это x для владельца, группы и прочего. Теперь предположим, что я хотел удалить права на запись и выполнение только для группы и других пользователей.

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

chmod go-wx filename

Поскольку я хочу изменить разрешения для группы и других, я использую букву g и букву o . Я хочу удалить разрешения, поэтому я использую знак - . Наконец, я хочу удалить разрешения на запись и выполнение, поэтому я использую w и x . Вот удобная небольшая таблица для использования символов:

Вот и все, что нужно знать об использовании символьного метода. Теперь давайте поговорим о восьмеричном методе, который мне кажется немного проще. Octal удобен(Octal) тем, что вы можете добавлять или удалять разрешения за один раз.

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

-rw-rw-rw-

Выше(Above) вы можете видеть, что я использовал следующую команду:

chmod 744 filename

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

Теперь я использовал следующую команду, опять же очень простую:

chmod 640 filename

Здесь мы дали владельцу права на чтение/запись, группе — только чтение, а другой группе — никаких разрешений. Вы используете ноль для обозначения отсутствия разрешений. Довольно просто, а?

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



About the author

Я инженер-программист с более чем 10-летним опытом работы в индустрии Xbox. Я специализируюсь на разработке игр и тестировании безопасности. Я также являюсь опытным обозревателем и работал над проектами для некоторых из самых известных игровых компаний, включая Ubisoft, Microsoft и Sony. В свободное время я люблю играть в видеоигры и смотреть сериалы.



Related posts