Пользователи и их права

Пользователи и группы

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

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

Взаимодействие с файловой системой происходит через запуск тех или иных утилит, модифицирующих, создающих или анализирующих файловую структуру. Это значит, что запуская, например, touch, мы стартуем процесс от своего имени, внутри которого запускается программа touch. Она, в свою очередь, создаёт файл (если его не было) и делает вас владельцем нового файла.

Чтобы понять "кто я" в системе необходимо выполнить команду whoami и мы получим имя пользователя.

whoami 
===
cola

Отображение владельца файла или каталога

В Linux у каждого файла и каждого каталога есть два владельца: пользователь и группа.

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

Чтобы увидеть текущие назначения владельца, вы можете использовать команду ls -l. Эта команда показывает пользователя и группу-владельца.

drwxr-xr-x  2 cola cola  4096 Aug 27  2020  test11
drwxr-xr-x  2 cola cola  4096 Aug 26  2020  test111
drwxr-xr-x  2 cola cola  4096 Aug 28  2020  test55

cola Это имя пользователя и имя группы

Изменение владельца

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

chown кто что

Например, следующая команда меняет владельца каталога /home/account на пользователя linda:

chown linda /home/account

Команда chown имеет несколько опций, одна из которых особенно полезна: -R. Вы можете догадаться, что она делает, потому что эта опция доступна и для многих других команд. Это позволяет вам рекурсивно устанавливать владельца, что позволяет вам установить владельца текущего каталога и всего, что находится ниже.

Изменение владельца группы

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

Установим пользователя lisa и группу account

chown lisa:account /home/account

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

Права доступа

Права доступа к файлам

Кроме имени пользователя и группы, с каждым файлом ассоциированы права доступа: r — чтение, w — запись и x — исполнение. Причём эти права задаются для трёх типов пользователей: владельца (Owner), пользователей, входящих в ту же группу (Group) и остальных (Other) — тех, кто не попал в предыдущие две.

Разберём на примере:

ls -l
-rw-r--r--  1 cola cola    13 Aug 26  2020  1.py

Сточка результата начинается с -, это означает что это обычный файл

Далее мы видим три группы данные

  • rw- Права для "Владельца". Означает что владелец может читать и записывать файл

  • r-- Права для группы. Означает что пользователи группы могут читать файл

  • r-- Права для "остальных". Все могут читать этот файл

Права доступа к директориям

Как и для файлов, в Linux организованна и система доступа к директории. Единственно отличие, что права доступа имеют специфичную для директорий доступ. r — разрешенное получение списка файлов, w — разрешит создавать, удалять и менять права доступа к файлам и x разрешить переход в каталог.

Разберём на примере:

ls -l
drwxr-xr-x  2 cola cola  4096 Nov 12  2020  world

Сточка результата начинается с d, это означает что мы видим директорию

Далее мы видим три группы данные

  • rwx Права для "Владельца". Означает что владелец может в директории делать все

  • r-x Права для группы. Означает что пользователи группы могут читать получать список файлов и переходить в каталог.

  • r-x Права для "остальных". Аналогично строчке выше.

Числовые кода доступа

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

Рассмотрим таблицу

drwxr-xr-x в числовой форме соответствует 755, а -rw-r--r--644.

Изменение прав доступа

Для управления правами используется команда chmod. При использовании chmod вы можете устанавливать разрешения для пользователя (user), группы (group) и других (other). Вы можете использовать эту команду в двух режимах: относительный режим и абсолютный режим. В абсолютном режиме три цифры используются для установки основных разрешений.

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

chmod 755 /somefile

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

  • Сначала вы указываете, для кого вы хотите изменить разрешения. Для этого вы можете выбрать между пользователем (u), группой (g) и другими (o).

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

    • В конце вы используете r, w и x, чтобы указать, какие разрешения вы хотите установить.

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

chmod +x somefile

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

chmod g+w,o-r somefile

Last updated