Объяснение прав доступа к команде Chmod и файлам Linux

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

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

Независимо от того, одна из самых важных команд Linux для изучения

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

Основы прав доступа к файлам в Linux

Операционные системы Linux на самом деле являются Unix-подобными системами (понимая Linux и Unix), а Unix-подобные системы приближаются к разрешениям файлов следующим образом:

Каждый файл имеет владелец, который определяет «класс пользователя» файла. Каждый файл также имеет группа, который определяет «класс группы» файла. Любой системный пользователь, который не является владельцем и не принадлежит к той же группе, определяется как другие.

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

В Unix-подобной системе доступны три действия: читать (возможность открывать и просматривать содержимое файла), записывать (возможность открывать и изменять содержимое файла), и выполнять (возможность запуска файла как исполняемой программы).

Другими словами, права доступа к файлу определяют:

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

Права доступа к файлам Linux могут отображаться в двух форматах.

Первый формат называется символическое обозначение, которая представляет собой строку из 10 символов: один символ представляет тип файла, затем девять символов представляют разрешения чтения (r), записи (w) и выполнения (x) файла в порядке владельца, группы и других. Если не разрешено, используется тире (-).

Например:

-rwxr-xr--

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

Второй формат называется цифровая запись, которая представляет собой строку из трех цифр, каждая из которых представляет пользователя, группу и другие разрешения соответственно. Каждая цифра может варьироваться от 0 до 7, и значение каждой цифры получается путем суммирования прав класса:

  • 0 означает, что разрешения не разрешены.
  • +1, если класс может выполнить файл.
  • +2, если класс может записать в файл.
  • +4, если класс может прочитать файл.

Другими словами, значение каждого цифрового значения в конечном итоге будет:

  • 0: нет разрешения
  • 1: Выполнить
  • 2: написать
  • 3: Написать и выполнить
  • 4: Читать
  • 5: прочитать и выполнить
  • 6: Читай и пиши
  • 7: чтение, запись и выполнение

Итак, приведенный выше пример (-rwxr-xr--) будет 754 в числовой записи.

Это права доступа к файлам Linux в двух словах.

Что такое Chmod?

В Unix-подобных системах CHMOD это команда системного уровня, которая обозначает «режим изменения» и позволяет вам вручную изменять настройки прав доступа к файлу.

Не путать с Чаун, это еще одна команда системного уровня в Unix-подобных системах, которая обозначает «изменение владельца» и позволяет назначить право собственности на файл другому пользователю, или команда chgrp, который обозначает «изменить группу» и назначает файл другой группе. Это важно знать, но не так часто, как chmod.

Что означает Chmod 644?

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

Что означает Chmod 755?

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

Что означает Chmod 555?

Установка прав доступа к файлу 555 делает его таким, что файл вообще не может быть изменен кем-либо, кроме суперпользователя системы (подробнее о суперпользователе Linux)

). Это не так часто используется как 644, но все же важно знать, потому что настройка только для чтения предотвращает случайные изменения и / или подделку.

Что означает Chmod 777?

Установка прав доступа к файлу на 777 делает так, что каждый может делать с файлом все что угодно. Это огромный риск для безопасности, особенно на веб-серверах! Буквально любой может получить доступ к файлу, изменить его так, как он хочет, и запустить его в системе. Вы можете представить себе потенциальный ущерб, если на него попадут мошенники.

Как использовать Chmod в Linux

Команда chmod имеет простой формат:

chmod [permissions] [file]

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

chmod 644 example.txt

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

chmod u=rwx example.txt
chmod g=rw example.txt
chmod o=rw example.txt

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

chmod u=rwx,g=rw,o=rw example.txt

При назначении одинаковых разрешений нескольким классам, вы можете объединить их:

chmod u=rwx,go=rw example.txt

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

Например, это добавляет разрешение на выполнение для владельца файла:

chmod u+x example.txt

И это удаляет разрешения на запись и выполнение для других пользователей:

chmod o-wx example.txt

Наконец, если вы хотите применить определенный набор разрешений ко всем файлам и папкам в определенном каталоге (то есть рекурсивном chmod), используйте опцию -R и выберите целевой каталог:

chmod -R 755 example_directory

Хотя команда chmod на первый взгляд выглядит немного сумасшедшей, на самом деле она довольно проста и вполне логична. Если вы понимаете вышесказанное, вы в основном освоили chmod!

Узнайте больше об освоении Linux

Такие команды, как chmod, chown и chgrp, являются лишь верхушкой айсберга Linux. Если вы новичок в операционной системе, мы рекомендуем проверить эти хитрости для новичков в Linux, а также эти команды Linux, которые вы никогда не должны выполнять.

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

, который научит вас всему, что вам нужно знать, чтобы начать и достаточно ознакомиться, чтобы чувствовать себя комфортно.

Ссылка на основную публикацию
Adblock
detector