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

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

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

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

Категория пользователей в Linux

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

В Linux несколько пользователей можно объединить в группу и получить права доступа к файлам как группе. Они известны как владельцы групп и обозначаются буквой g.

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

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

Всех пользователей компьютера, то есть владельцев файлов, пользователей в группах и других пользователей, можно указать с помощью буквы a.

Создайте и добавьте нового пользователя в Ubuntu Linux

Давайте посмотрим, как можно создать и добавить нового пользователя в Ubuntu Linux. Чтобы продолжить работу с этим руководством, пожалуйста, создайте нового пользователя.

1. Откройте «Настройки» и в левой строке меню нажмите «Пользователь», затем нажмите «Разблокировать» и введите свой пароль при появлении запроса. Вам нужно нажать «Разблокировать», чтобы можно было добавить нового пользователя. По умолчанию эта функция заблокирована.

2. После разблокировки вы увидите опцию «Добавить пользователя». Нажмите на нее, чтобы добавить нового пользователя.

3. Чтобы создать нового пользователя, укажите его полное имя и имя пользователя, выберите «Задать пароль сейчас» и установите пароль. Кроме того, убедитесь, что тип учетной записи установлен «Администратор», затем нажмите «Добавить», чтобы добавить пользователя.

4. Вы должны увидеть новую учетную запись пользователя, которую вы только что создали, как показано ниже.

Разрешения для файлов и каталогов Linux

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

  Как играть в Counter-Strike: Global Offensive на Linux
  • Read(r) – позволяет пользователю просматривать содержимое файла и перечислять содержимое каталога.
  • Write(w) – позволяет пользователю изменять содержимое файла. В случае с каталогами разрешения на запись позволяют пользователю изменять содержимое каталога, например, путем создания, удаления, переименования или перемещения файлов и подкаталогов в каталоге. Однако разрешения на запись в каталоги работают только в том случае, если у пользователя также есть разрешения на выполнение.
  • Execute(x) – разрешения на выполнение означают, что файл можно рассматривать как программу, которую можно выполнить. В случае с каталогами разрешение на выполнение позволяет пользователю войти в каталог или выполнить переход в него.
  • Разрешения на чтение, запись и выполнение назначаются трем категориям пользователей, доступных в Linux.

    Вы также можете прочитать, как удалить файлы и каталоги в Linux.

    Длинный листинг в Linux

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

    Чтобы просмотреть дополнительную информацию о содержимом, вам необходимо использовать формат длинного списка. Для этого запустите команду ls с флагом -l. Это предоставит вам права доступа к файлу, владельцев файла и владельцев групп для файла, как показано ниже:

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

    Чтобы создать группу, мы используем команду addgroup. Чтобы добавить группу под названием «Редакторы», выполните следующую команду и введите пароль при появлении запроса.

    sudo addgroup editors

    sudo позволяет нам запускать команды от имени пользователя root, который является суперпользователем с привилегиями выполнения изменений, которые затрагивают всех пользователей компьютера.

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

    adduser <user> <group>

    Поэтому, чтобы добавить Бельмонта и Мадичи в группу редакторов, мы выполняем

    sudo adduser belmont editors
    sudo adduser madici editors

    Чтобы увидеть группы, к которым принадлежит пользователь, выполните:

    groups <username>

    Результат выполнения вышеуказанных команд показан ниже:

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

    Атрибуты файлов в Linux

    В Linux атрибуты файла состоят ровно из десяти символов. Первый символ указывает тип файла. Некоторые из общих первых символов, обозначающих разные файлы, включают:

    • d указывает каталог
    • – указывает на обычный файл, например, текстовые файлы
    • c указывает на специальный символьный файл
    • l указывает на символическую ссылку
    • b указывает на специальный файл блока

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

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

      Как создать тему Hyper Terminal в Linux

    Символ – используется в случае, если у пользователя нет определенного разрешения. Например, rw- для владельца группы означает, что у него есть разрешения на чтение и запись, но нет разрешения на выполнение в этом каталоге (d).

    Изменение прав доступа к файлу с использованием символьной записи

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

    Это может быть владелец файла, обозначенный буквой u для пользователя, владелец группы, обозначенный буквой g, или другие пользователи, обозначенные буквой o. Мы также можем ориентироваться на все три категории пользователей, используя букву «а», которая означает все вышеперечисленное.

    Следующее, что мы указываем, — это изменение, которое мы вносим. Чтобы добавить разрешение, мы используем + (знак плюса). Чтобы удалить разрешение, мы используем – (знак минус). Последнее, что мы предоставляем, — это разрешения, которые мы добавляем с помощью r, w или x для представления трех доступных разрешений.

    Чтобы увидеть это в действии, создайте каталог под названием «books», используя команду ниже.

    mkdir books

    Введите или нажмите «cd» в каталог:

    cd books

    Создайте файл с именем readList.txt.

    touch readingList.txt

    Длинный список содержимого каталога книг, выполнив:

    ls -l

    Результат такой:

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

    chmod o+w readingList.txt

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

    ls -l

    Выход:

    Обратите внимание, что права доступа к файлам других пользователей изменились с r– на rw-, что означает, что теперь у них есть разрешение на запись.

    Чтобы добавить разрешения на выполнение владельцу (пользователю) файла, выполните:

    chmod u+x readingList.txt

    Чтобы удалить разрешения на запись у владельцев группы, выполните:

    chmod g-w readingList.txt

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

    chmod a-r readingList.txt

    Чтобы вернуть разрешение на чтение для владельца файла, выполните:

    chmod u+r readingList.txt

    Чтобы добавить права на запись и выполнение для группы владельца файла, выполните:

    chomod g+wx readingList.txt

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

    В Linux каждое из трех доступных разрешений имеет только два возможных значения. Разрешение на чтение может быть только r или –, разрешение на запись может быть только w или –, а разрешение на выполнение может быть только x или –.

    Следовательно, эти разрешения можно считать либо включенными, либо выключенными и, следовательно, представлять их с помощью двоичных чисел, которые имеют только два доступных значения. Это 1 для включения или истины и 0 для выключения или ложности. Там разрешение, такое как rw–, может быть представлено как 110 с использованием двоичных чисел.

    Таким образом, для любой категории пользователей достаточно трех двоичных чисел, чтобы представить все их права. Например, права владельца, группы и других пользователей rwxrw-r– могут быть представлены как 111110100 с использованием двоичного числа.

      Как перейти с Bash на Korn Shell в Linux

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

    Восьмеричные числа имеют основание 8 и, следовательно, имеют только 8 возможных значений. Каждое восьмеричное число соответствует ровно трем двоичным цифрам.

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

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

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

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

    Чтобы предоставить всем пользователям, то есть владельцу, владельцу группы и другим пользователям, разрешение на чтение, запись и выполнение файла readList.txt, выполните:

    chmod 777 readingList.txt

    Чтобы проверить, были ли изменены разрешения, выполните:

    ls -l

    Выход:

    total 0
    -rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

    Обратите внимание, что теперь владелец, группа и другие пользователи имеют разрешение на чтение, запись и выполнение readList.txt.

    Чтобы удалить разрешения на запись как у владельца группы, так и у других, выполните:

    chmod 755 readingList.txt

    Чтобы удалить разрешение на выполнение у владельца и выполнить другие:

    chmod 654 readingList.txt

    Специальные разрешения в Linux

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

    К специальным разрешениям относятся:

    • Установить идентификатор пользователя (SUID) — разрешение SUID позволяет пользователю запускать файл или программу с привилегиями владельца, а не пользователя, выполняющего его. Это полезно, когда обычным пользователям необходимо выполнять задачи, требующие повышенных привилегий.
    • Установить идентификатор группы (SGID) — разрешение SGID позволяет пользователю запускать файл с разрешениями владельца группы файла, а не с разрешениями его фактической группы.
    • Sticky Bit — липкий бит — это разрешение, которое обычно устанавливается для каталогов, чтобы гарантировать, что файлы в каталоге могут быть удалены только фактическим владельцем каталога, владельцем этого конкретного файла или пользователем root.

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

    Заключение

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

    Вы также можете узнать, как использовать команды Linux в Windows.