Пользователи и их права
Пользователи и группы
Тема пользователей и их прав в системе в первую очередь относится к функционированию самой операционной системы. Оболочка лишь предоставляет утилиты, позволяющие анализировать доступы и изменять их.
Абсолютно любой процесс, запускаемый в операционной системе, стартует от имени некоторого пользователя. Соответственно, его возможности по влиянию на файловую систему ограничены теми правами, которые есть у пользователя, от имени которого процесс запущен.
Взаимодействие с файловой системой происходит через запуск тех или иных утилит, модифицирующих, создающих или анализирующих файловую структуру. Это значит, что запуская, например, touch
, мы стартуем процесс от своего имени, внутри которого запускается программа touch
. Она, в свою очередь, создаёт файл (если его не было) и делает вас владельцем нового файла.
Чтобы понять "кто я" в системе необходимо выполнить команду whoami
и мы получим имя пользователя.
Отображение владельца файла или каталога
В Linux у каждого файла и каждого каталога есть два владельца: пользователь и группа.
Эти владельцы устанавливаются при создании файла или каталога. Пользователь, который создаёт файл становится владельцем этого файла, а первичная группа, в которую входит этот же пользователь, так же становится владельцем этого файла. Чтобы определить, есть ли у вас как у пользователя права доступа к файлу или каталогу, оболочка проверяет владение ими.
Чтобы увидеть текущие назначения владельца, вы можете использовать команду ls -l
. Эта команда показывает пользователя и группу-владельца.
cola
Это имя пользователя и имя группы
Изменение владельца
Чтобы применить соответствующие разрешения, первое, что нужно учитывать, это владение. Для этого есть команда chown. Синтаксис этой команды несложен для понимания:
chown кто что
Например, следующая команда меняет владельца каталога /home/account на пользователя linda:
Команда chown
имеет несколько опций, одна из которых особенно полезна: -R. Вы можете догадаться, что она делает, потому что эта опция доступна и для многих других команд. Это позволяет вам рекурсивно устанавливать владельца, что позволяет вам установить владельца текущего каталога и всего, что находится ниже.
Изменение владельца группы
Есть два способа изменить владение группой. Вы можете сделать это, используя chown, но есть специальная команда с именем chgrp
, которая выполняет эту работу. Если вы хотите использовать команду chown, используйте . или : перед названием группы.
Установим пользователя lisa
и группу account
При этом мы должны понимать, что пользователь может изменить группу файла только на ту, в которой он находиться сам.
Права доступа
Права доступа к файлам
Кроме имени пользователя и группы, с каждым файлом ассоциированы права доступа: r — чтение, w — запись и x — исполнение. Причём эти права задаются для трёх типов пользователей: владельца (Owner), пользователей, входящих в ту же группу (Group) и остальных (Other) — тех, кто не попал в предыдущие две.
Разберём на примере:
Сточка результата начинается с -
, это означает что это обычный файл
Далее мы видим три группы данные
rw-
Права для "Владельца". Означает что владелец может читать и записывать файлr--
Права для группы. Означает что пользователи группы могут читать файлr--
Права для "остальных". Все могут читать этот файл
Права доступа к директориям
Как и для файлов, в Linux организованна и система доступа к директории. Единственно отличие, что права доступа имеют специфичную для директорий доступ. r — разрешенное получение списка файлов, w — разрешит создавать, удалять и менять права доступа к файлам и x разрешить переход в каталог.
Разберём на примере:
Сточка результата начинается с 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
в относительном режиме. При использовании chmod
в относительном режиме вы работаете с тремя индикаторами, чтобы указать, что вы хотите сделать:
Сначала вы указываете, для кого вы хотите изменить разрешения. Для этого вы можете выбрать между пользователем (u), группой (g) и другими (o).
Затем вы используете оператор для добавления или удаления разрешений из текущего режима или устанавливаете их абсолютно.
В конце вы используете r, w и x, чтобы указать, какие разрешения вы хотите установить.
При изменении разрешений в относительном режиме вы можете пропустить часть «кому», чтобы добавить или удалить разрешение для всех объектов. Например, эта команда добавляет разрешение на выполнение для всех пользователей:
При работе в относительном режиме вы также можете использовать более сложные команды. Например, эта команда добавляет разрешение на запись в группу и удаляет чтение для других:
Last updated