Многопользовательская работа в Linux
Unix (и Linux) был изначально ориентирован на то, что одним компьютером могут пользоваться одновременно несколько человек. Но даже если компьютером обычно пользуется только один человек, такой подход все равно помогает разделить пользовательские настройки от системных, т.е. тех, которые относятся ко всем пользователям и к системе в целом. Такое разделение положительно сказывается на устойчивости и безопасности системы. Приложения изначально пишутся с учетом того, что ими может пользоваться несколько пользователей сразу и, как правило, не требуют прав записи в системные каталоги. Все настройки они сохраняют в собственном, т.н. «домашнем» каталоге пользователя. Каждый пользователь может настроить систему в соответствии со своими предпочтениями и это не вызовет проблем у других пользователей. Обычно работа ведется под пользователем, у которого нет прав испортить что-то за пределами своего каталога, а настройка системы производится под суперпользователем по мере необходимости. Многопользовательский режим позволяет производить настройку системы не прерывая работы пользователей.
Работа в системе под пользователем с ограниченными правами позволяет предотвратить повреждение системы при неаккуратных действиях пользователя, а отсутствие доступа на запись к системным каталогам не приносит неудобств.
Права доступа в Linux
Каждый файл и каталог (каталоги также являются файлами с особой структурой) в операционной системе Linux имеет ярлык (этикетку, атрибуты, attributes), который используется ядром при определении того, что может данный пользователь делать с этим файлом: читать, изменять или запускать файл (программу) на исполнение.
Права доступа определены для трех уровней пользователей: самого владельца файла, для пользователей, принадлежащих к группе (скажем, группа программистов, работающих над одним проектом), и для всех прочих пользователей. Особняком стоит администратор системы, который может производить любые операции с файлами.
Когда вы заходите в систему, то регистрируетесь, вводя свой пароль и имя. Если система вас опознает, вы получаете доступ к файловой системе. Правда, для ускорения быстродействия системы вы работаете в ней не под своим именем, а используете идентификатор (номер) пользователя (User ID, сокращенно UID). Соответствие между именами и UID указывается в файле /etc/passwd.
Пользователи, принадлежащие к какой-либо группе, получают еще один идентификатор – GID (group ID). Один пользователь может принадлежать к нескольким группам и иметь несколько номеров GID. Общие права группы распространяются на всех ее участников. Сочетания имен и номеров содержатся в файле /etc/group.
Остальные пользователи, не владеющие файлами и не являющиеся членами группы, обозначаются как прочие (others). Такие пользователи имеют очень мало прав, а то и вовсе ими не обладают.
Для описания прав доступа используется следующий шаблон: владелец группа прочие.
Так как информация о правах записывается в ярлыке файла в виде битов (минимальная единица информации), то для облегчения понимания того, как распределяются права, используется запись, представленная в правой колонке табл. 1.2. Также популярно использование восьмеричной системы, так как для идентификации каждого уровня пользователей используются три бита (тремя битами можно обозначить только восемь значений):
• 1 = право исполнения (- – х), сокращенно от execute – исполнять;
• 2 = право редактирования (-W-), сокращенно от write – писать;
• 3 = право чтения ( г – -), сокращенно от read – читать.
Например, файл, с которым любой пользователь может производить любые операции, имеет следующее обозначение прав доступа:
rwxrwxrwx
или
Для обычных (нормальных) файлов используется следующий вариант (разрешено чтение и редактирование для всех):
rw-rw-rw-или
Если владелец файла не хочет, чтобы к его файлу имели доступ, например, если это личное письмо или конфиденциальная информация, то устанавливаются следующие атрибуты:
rw.......
или
Для каталогов, как и для файлов, устанавливаются права доступа. Следовательно, возникают коллизии, когда вы имеете полные права на файл, находящийся в каталоге, но подпадаете под ограничения, установленные для вас атрибутами каталога.