Linux для начинающих - Основы Linux - Права доступа

 

 

 

Каждый файл и каталог (каталоги также являются файлами с особой структурой) в операционной системе Linux имеет ярлык (этикетку, атрибуты), который используется ядром при определении того, что может данный пользователь делать с этим файлом: читать, изменять или запускать файл (программу) на исполнение. Права доступа определены для трех уровней пользователей: самого владельца файла, для пользователей, принадлежащих к группе (скажем, группа программистов, работающая над одним проектом), и для всех прочих пользователей. Особняком стоит администратор системы, который может производить любые операции с файлами. Когда вы заходите в систему, то регистрируетесь, вводя свой пароль и имя. Если система вас опознает, вы получаете доступ к файловой системе. Правда, для ускорения быстродействия системы вы работаете в ней не иод своим именем, а с помощью идентификатора (номера) пользователя (User ID, сокращенно UID). Соответствие между именами и UID указывается в файле /etc/passwd. Пользователи, принадлежащие к какой-либо группе, получают еще один идентификатор — GID (group ID). Один пользователь может принадлежать к нескольким группам и иметь несколько номеров GID. Общие права группы распространяются на всех ее участников. Сочетания имен и номеров содержатся в файле /etc/group. Остальные пользователи, не владеющие файлами и не являющиеся членами группы, обозначаются как прочие (others). Такие пользователи имеют очень мало прав, а то и вовсе ими не обладают.
Для описания нрав доступа используется следующий шаблон:
владелец группа прочие
Так как информация о правах записывается в ярлыке файла в виде битов (минимальных единиц информации), то для облечения пони мания того, как распределяются права, используется запись, прем ставленная в правой колонке табл. 2.1. Также популярно использование восьмеричной системы, так как для идентификации каждого уровня пользователей используется три бита (тремя битами можно обозначить только восемь значений):

Например, файл, с которым любой пользователь может производить любые операции, имеет следующее обозначение прав доступа:
rwxrwxrwx или
777
Для обычных (нормальных) файлов используется следующий вариант (разрешено чтение и редактирование для всех):
rw-rw-rw-или
666
Если владелец файла не хочет, чтобы к его файлу имели доступ, например, если это личное письмо или конфиденциальная информация, то устанавливаются следующие атрибуты:
rw-
или 600
Для каталогов, как и для файлов, устанавливаются права доступа. Следовательно, возникают коллизии, когда вы имеете полные права на файл, находящийся в каталоге, но подпадаете под ограничения, установленные для вас атрибутами каталога. Например, вы владелец файла, но не можете получить к нему доступ, так как вам разрешено в данном каталоге только просматривать имена файлов.

Дополнительные параметры

К сожалению, указанными выше атрибутами дело не ограничивается. Для указания прав доступа используются еще несколько флагов. Для определения прав доступа пользователя, запустившего программу, на доступ к системным файлам может
применяться флаг Set-UID (SUID). Например, при изменении собственного пароля вы можете пользоваться информацией из файла паролей, но доступ к информации, относящейся к чужим паролям, будет закрыт.
В большинстве случаев исполняющаяся программа (команда) обладает теми же правами, что и пользователь, ее запустивший, но на самом деле используются следующие идентификаторы:

Этот флаг обозначается символом s на позиции права исполнения (--s- -х- -х) (в редких случаях может встретиться символ S, когда право исполнения для владельца файла отсутствует). В восьмеричной системе счисления для указания флага SUID используется число 4000: например, обозначение --s- -х- -х соответствует 4111. Для групп имеется аналогичный флаг Set-GID (SGID). Он указывается на той же, что и SUID, позиции, но в зоне определения прав группы. Его восьмеричное значение равно 2000.
Особое значение имеет флаг в зоне прав остальных пользователей, который называется (sticky — клейкий). Его назначение — запретить удаление кода программы из памяти даже тогда, когда она уже выполнена. В отличие от Unix, операционная система Linux этот флаг для программ игнорирует, используя его только для ряда каталогов. Чаще всего Sticky-Bit используется для каталогов, предназначенных для размещения временных файлов. Основное назначение этого флага — запрет на удаление временных файлов в данном каталоге для всех, кроме владельца этих файлов. Обозначается флаг символом t — например, rwxrwxrwt или 1777.


Hosted by uCoz