Рекомендуем, 2024

Выбор редакции

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

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

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

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

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

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

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

Разрешения записываются следующим образом: первый бит - это тире или буква d. Тире означает, что это файл, а 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, что означает, что группа и другие пользователи имеют права на чтение и выполнение.

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

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

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

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

 -rw-RW-rw- 

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

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

 chmod a + x имя файла 

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

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

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

 chmod go-wx имя файла 

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

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

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

 -rw-RW-rw- 

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

 chmod 744 имя файла 

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

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

 chmod 640 имя файла 

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

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

Top