5 Управление доступом
5.1 Введение
Средства управления доступом предоставляют возможности ограничения количества одновременно предоставляемых параллельных сеансов доступа пользователей к системе, блокирования сеанса доступа пользователя в систему после истечения установленного периода времени бездействия или по его запросу, поддержки и сохранения атрибутов безопасности, связанных с информацией в процессе её хранения и обработки, разделения полномочий пользователей и администраторов, обеспечивающих функционирование системы, реализации различных методов управления доступом, типов доступа и правил разграничения доступа, назначения приоритетов для использования субъектами доступа вычислительных ресурсов, квотирования предоставляемых вычислительных ресурсов, а также другие возможности.
5.2 Установка и изменение прав доступа к файлам и директориям
Утилита chmod
позволяет устанавливать и изменять права доступа к файлам и
директориям. Она принимает описания прав доступа в двух нотациях: численной и
буквенной, описываемой ниже.
В соответствии с буквенной нотацией пользователи, которые
могут потенциально работать с файлом, разделяются на владельца (u
), группу владельцев (g
)
и всех остальных пользователей (o
), а файл может быть читаемым (r
), записываемым (w
) и
исполняемым (х
).
Описание прав доступа начинается с символа, соответствующего типу
пользователей. Затем идет символ +
для установки или символ -
для снятия прав доступа,
после чего описание заканчивается последовательностью символов, соответствующей правам
доступа.
Например, для определения прав доступа, позволяющих читать и модифицировать
файл file
, может использоваться нотация:
chmod g+rw file
Для удаления всех прав доступа на директорию /directory
для группы и остальных
пользователей может использоваться нотация:
chmod go-rwx /directory.
Утилита поддерживает также следующие опции, перечисленные в таблице:
Опция |
Значение |
---|---|
|
Рекурсивное изменение прав доступа для директорий и их содержимого. |
|
Подробно описывать действия для каждого файла, чьи права действительно изменяются. |
|
Не выдавать сообщения об ошибке для файлов, чьи права не могут быть изменены. |
|
Подробно описывать действие или отсутствие действия для каждого файла. |
|
Сообщить информацию о версии. |
|
Выводит справку по этой утилите и завершает работу. |
Пример: сменим права для файла file1
так, чтобы владелец файла имел права на чтение и запись, а группа и остальные пользователи — только на чтение:
[user@msvsphere ~]$ chmod u+rw g-wx o-wx file1
5.3 Назначение и изменение владельца файла и директории
Утилита chown
позволяет назначить или изменить владельца файла или директории.
Утилита поддерживает следующие опции, перечисленные в таблице:
Опция |
Значение |
---|---|
|
Рекурсивное изменение прав доступа для директорий и их содержимого. |
|
Подробно описывать все изменения. |
|
Не выдавать сообщения об ошибке. |
|
Вывести подробное описание действия. |
|
Сообщить информацию о версии. |
|
Выводит справку по этой утилите и завершает работу. |
Пример: назначим пользователя user
владельцем файла file
:
chown user file
Пример: выполним рекурсивный обход директории directory
и назначим пользователя user
владельцем всех вложенных файлов:
chown -R user directory
5.4 Изменение группы-владельца файла или директории
Утилита chgrp
позволяет изменить группу-владельца файла или директории.
Утилита поддерживает следующие опции, перечисленные в таблице:
Опция |
Значение |
---|---|
|
Рекурсивное изменение группы для каталогов и всего их содержимого. |
|
Подробно описывать действия для каждого файла, чья группа действительно меняется. |
|
Не выдавать сообщения об ошибке для файлов, чья группа не может быть изменена. |
|
Подробно описывать действие или отсутствие действия для каждого файла. |
|
Сообщить информацию о версии. |
|
Вывести справку по этой утилите и завершить работу. |
Пример: изменим группу-владельца файла file
на новую группу new_group
:
chgrp new_group file
5.5 Просмотр и изменение списков правил контроля доступа для файлов и директорий
Утилита setfacl
позволяет просматривать и изменять списки правил контроля доступа для файлов и директорий.
Утилита поддерживает следующие опции, перечисленные в таблице:
Опция |
Значение |
---|---|
|
Установить правила контроля доступа по умолчанию. |
|
Удалить правила контроля доступа по умолчанию. |
|
Заменить правила контроля доступа заданными. |
|
Модифицировать правила контроля доступа. |
|
Удалить указанное правило контроля доступа. |
|
Удалить все правила контроля доступа. |
|
Вывести версию и выйти. |
|
Вывести справку об использовании утилиты и выйти. |
Пример: удалим все правила контроля доступа к файлу file
:
setfacl -b file
5.6 Просмотр списков контроля доступа
Утилита getfacl
позволяет просматривать списки контроля доступа.
Утилита поддерживает следующие опции, перечисленные в таблице:
Опция |
Значение |
---|---|
|
Выводить список контроля доступа к файлам. |
|
Выводить список контроля доступа по умолчанию. |
|
Не выводить заголовок с комментариями. |
|
Выводить комментарии с действующими правами доступа для каждого пользователя. |
|
Не выводить комментарии с действующими правами доступа ни для одного пользователя. |
|
Делать рекурсивный обход директории и выводить списки контроля доступа для каждого файла и директори. |
|
Вывести версию и выйти. |
|
Вывести справку об использовании утилиты и выйти. |
Пример: просмотрим список контроля доступа для файла cg.conf
:
[user@msvsphere ~]$ getfacl cg.conf
# file: cg.conf
# owner: user
# group: user
user::rwx
group::r-x
other::r-x
Пример: зададим дополнительные компоненты списка контроля доступа для пользователя user
и группы user
по отношению к файлу cg.conf
:
[user@msvsphere ~]$ setfacl -m g:user:rxw cg.conf
[user@msvsphere ~]$ setfacl -m u:user:rxw cg.conf
[user@msvsphere ~]$ getfacl cg.conf
# file: cg.conf
# owner: user
# group: user
user::rwx
user:user:rwx
group::r-x
group:user:rwx
mask::rwx
other::r-x
Пример: от имени администратора модифицируем списки контроля доступа для файлов, владельцем которых он является:
[root@msvsphere ~]# setfacl -m u:user:rxw ~/file2
[root@msvsphere ~]#
[root@msvsphere ~]# getfacl ~/file2
getfacl: Removing leading `/` from absolute path names
# file: root/file2
# owner: root
# group: root
user::rw-
user:user:rwx
group::r--
mask::rwx
other::r--
Пример: от имени администратора модифицируем списки контроля доступа для файлов, владельцем которых он не является:
[root@msvsphere ~]# setfacl -m u:user:rxw /home/user3/file2
[root@msvsphere ~]# setfacl -m u:user:rxw /home/user3/dir2
[root@msvsphere ~]#
[root@msvsphere ~]# getfacl /home/user3/file2
getfacl: Removing leading `/` from absolute path names
# file: home/user3/file2
# owner: user3
# group: user3
user::rwx
user:user:rwx
group::---
mask::rwx
other::---
[root@msvsphere ~]# getfacl /home/user3/dir2
getfacl: Removing leading `/` from absolute path names
# file: home/user3/dir2/
# owner: user3
# group: user3
user::rwx
user:user:rwx
group::---
mask::rwx
other::---
Пример: от имени администратора удалим списки контроля доступа для объектов, владельцем которых он является:
[root@msvsphere ~]# setfacl -b ~/file2
[root@msvsphere ~]# getfacl ~/file2
getfacl: Removing leading `/` from absolute path names
# file: root/file2
# owner: root
# group: root
user::rw-
group::r--
other::r--
Пример: от имени администратора удалим списки контроля доступа для объектов, владельцем которых он не является:
[root@msvsphere ~]# setfacl -b /home/user3/file2
[root@msvsphere ~]# getfacl /home/user3/file2
getfacl: Removing leading `/` from absolute path names
# file: home/user3/file2
# owner: user3
# group: user3
user::rwx
group::---
other::---
Важно
Пользователь, не обладающий полномочиями администратора, не может удалять списки контроля доступа, которые он не создавал.
5.7 Редактирование пользовательских квот для файловой системы
Утилита edquota
позволяет редактировать пользовательские квоты для файловой системы.
Утилита поддерживает следующие опции, перечисленные в таблице:
Опция |
Значение |
---|---|
|
Изменить пользовательскую квоту. |
|
Изменить групповую квоту. |
|
Дублировать квоты прототипного пользователя. Это обычный механизм, используемый для инициализации квот для групп пользователей. |
|
Изменить квоту для указанного формата. |
|
Выполнять указанные операции только для заданной файловой системы. По умолчанию операция выполняется для всех файловых систем с квотой. |
|
Редактировать мягкие ограничения по времени для каждой файловой системы. |
|
Изменить время для пользователя или группы, когда принудительное ограничение установлено. |
5.8 Конфигурационный файл /etc/profile
Конфигурационный файл /etc/profile
используется для задания элементов окружения оболочки пользователя.
Например, в нём определяются глобальные переменные:
PATH
— переменная среды, используемая для указания оболочке списка каталогов, которые будут просматриваться при поиске исполняемых файлов;USER
— имя пользователя при входе в ОС;LOGNAME
— то же, что иUSER
. Некоторые программы считывают значение этой глобальной переменной вместоUSER
;MAIL
— имя файла, в который записывается локальная почта пользователя, а также его расположение;HOSTNAME
— имя хоста;HISTSIZE
— количество исполненных команд, сохраняемых в истории;HISTCONTROL
— политики в отношении команд, сохраняемых в истории. По умолчанию задано значениеignoredups
, то есть команда, полностью совпадающая с одной из уже записанных в историю, не сохраняется. Если задать политикуignorespace
, то будут игнорироваться как дублирующиеся команды, так и те, что начинаются с символа пробела.
Также в конфигурационном файле задаётся маска, используемая для определения конечных прав доступа для пользователя.
Пример: определим время бездействия при локальной терминальной сессии равным двум минутам (120 с). Для этого в файле /etc/profile
после строк
HOSTNAME= '/usr/bin/hostname 2>/dev/null'
HISTSIZE=1000
Добавим строку TMOUT=120
.
Там же, в строке
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
Необходимо добавить параметр TMOUT
:
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE TMOUT HISTCONTROL
Для подтверждения вступления изменений в силу надо будет завершить сеанс и зарегистрироваться в системе заново. Тогда появится сообщение, что после двух минут бездействия время ожидания ввода вышло, в результате чего интерактивный сеанс был закрыт.
[user@msvsphere ~]$ su
Пароль
[root@msvsphere user]# timed out waiting for input: auto-logout
[user@msvsphere ~]$
5.9 Конфигурационный файл /etc/security/limits.conf
Конфигурационный файл /etc/security/limits.conf
может использоваться для задания
модулю pam_limits.so
дополнительных ограничений. Для этого каждая его строка включает
четыре группы параметров, которые перечислены и описаны ниже:
Важно
По умолчанию все ограничения отключены — все строки закомментированы.
<domain>
:имя пользователя, имя группы с синтаксисом
@group
, подстановочный знак*
для записи по умолчанию, подстановочный знак%
, который также может использоваться с синтаксисом%group
для ограниченияmaxlogin
;
<type>
:soft
для установки мягких ограничений;hard
для установки жестких ограничений.
<item>
:core
: ограничивает размер файла ядра в Кб;data
: максимальный размер данных в Кб;fsize
: максимальный размер файла в Кб;memlock
: максимальное адресное пространство, предустановленное в памяти, в Кб;nofile
: максимальное количество открытых файлов;rss
: максимальный размер резидентного набора в Кб;stack
: максимальный размер стека в Кб;cpu
: максимальное время процессора в MIN;nproc
: максимальное количество процессов;as
: ограничение адресного пространства в Кб;maxlogins
: максимальное количество логинов для этого пользователя;maxsyslogins
: максимальное количество входов в систему;priority
: приоритет процессов пользователя;locks
: максимальное количество блокировок файлов, которое может быть обеспечено пользователем;sigpending
: максимальное количество ожидающих сигналов;msgqueue
: максимальный объем памяти, используемый очередями сообщений POSIX, в байтах;nice
: приоритет для запуска процессов утилитойnice
;rtprio
: максимальный приоритет в реальном времени.
Пример: ограничим число параллельных сеансов доступа для каждой учетной записи пользователя. Для этого добавим в конфигурационный файл строку следующего содержания:
username hard maxlogins 2
Тогда, при условии, что пользователь username
открыл локальную сессию
(учитывая, что при входе в графический сеанс открываются сразу две сессии пользователя)
и попытался зайти в систему через ssh-соединение
(потенциально ещё один активный сеанс), ему будет выведено сообщение Too many logins for 'username'
и это соединение будет заблокировано.
5.10 Конфигурационный файл /etc/fstab
Конфигурационный файл /etc/fstab
используется для настройки параметров
монтирования различных блочных устройств, разделов на диске и файловых систем.
Он состоит из набора так называемых определений, каждое из которых занимает свою
строку и состоит из шести полей, разделённых пробелами или символами табуляции:
fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno
Поля предназначены для задания следующих параметров:
fs_spec
Физическое размещение файловой системы, по которому определяется конкретный раздел или устройство хранения для монтирования. Вместо указания размещения файловой системы явным образом можно воспользоваться её уникальным идентификатором UUID.
fs_file
Точка монтирования, куда монтируется корень файловой системы.
fs_vfstype
Тип файловой системы. Поддерживаются следующие типы: adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext2, ext3, ext4, hfs, hpfs, iso9660, jfs, minix, msdos, nvpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs.
fs_mntops
Опции монтирования файловой системы. Основные опции:
defaults
,noauto
,user
,owner
,comment
,nofail
.
fs_freq
Предназначено для использования утилитой создания резервных копий в файловой системе. Возможные значения:
0
и1
. Если указано1
, то утилита создаст резервную копию.
fs_passno
Предназначено для использования программой
fsck
при необходимости проверки целостности файловой системы; возможные значения:0
,1
и2
. Значение1
указывается только для корневой файловой системы (то есть файловой системы с точкой монтирования/
). Для остальных файловых систем для проверки утилитойfsck
задаётся значение2
. При значении0
— проверка выполняться не будет.
По умолчанию конфигурационный файл включает:
/dev/mapper/MSVSphere-root / xfs defaults 0 0
Файловая система /dev/mapper/MSVSphere-root
примонтирована в каталог /
, тип файловой системы — xfs
,
используемые опции — defaults
, резервная копия данных не создаётся (fs_freq=0
), проверка
целостности файловой системы не выполняется (fs_passno=0
).
UUID=b1bfe9b0-96ea-4876-883c-a9f1b6c74b /boot ext4 defaults 1 2
Файловая система с идентификатором b1bfe9b0-96ea-4876-883c-a9f1b6c74b
смонтирована в /boot
, тип файловой
системы — ext4
, используемые опции — defaults
, резервная копия данных создаётся (fs_freq=1
),
проверка целостности файловой системы выполняется (fs_passno=2
).
/dev/mapper/MSVSphere-swap swap defaults 0 0
Файловая система /dev/mapper/MSVSphere-swap
является разделом подкачки swap
, используемые опции —
defaults
, резервная копия данных не создаётся (fs_freq=0
), проверка целостности файловой
системы не выполняется (fs_passno=0
).