Понимание разрешений 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 , и он может быть намного сложнее, но для начинающих это хорошее место для начала. В будущем я опубликую больше статей о расширенных разрешениях. Если у вас есть какие-либо вопросы, не стесняйтесь комментировать. Наслаждаться!
Related posts
Права доступа к файлам в Linux — что такое Chmod 777 и как его использовать
Команда Linux FIND с примерами
5 веских причин отказаться от Windows в пользу Linux
HDG объясняет: что такое UNIX?
9 лучших дистрибутивов Linux для взлома
10 сочетаний клавиш Ubuntu для ускорения вашего рабочего процесса
Как перейти на последнюю версию Ubuntu
Создайте собственный дистрибутив Live Linux с помощью Linux Live Kit
Как переустановить Linux Mint без потери данных и настроек
Почему команда «меньше» лучше, чем «больше» в UNIX и Linux
Трюки с терминалом: используйте терминал в качестве будильника
Как установить и настроить файлы TCP/IP в Linux (настройки TCP/IP для Linux)
7 способов заархивировать и разархивировать файлы в Linux
10 лучших приложений Linux для пользователей Ubuntu
5 способов автоматизировать резервное копирование файлов в Linux
Как установить и настроить Кали Линукс
Как ориентироваться и использовать структуру каталогов Linux
20 лучших приложений для Linux
Преобразование изображений между форматами через командную строку в Ubuntu
Добавьте ярлыки в контекстное меню правой кнопки мыши в Ubuntu