Шрифт:
Интервал:
Закладка:
В данной главе мы рассмотрим эту важную сторону безопасности системы и познакомимся со следующими командами:
• id — выводит информацию об идентичности пользователя.
• chmod — изменяет режим доступа к файлу.
• umask — определяет разрешения доступа к файлам по умолчанию.
• su — запускает командную оболочку от имени другого пользователя.
• sudo — выполняет команду от имени другого пользователя.
• chown — изменяет владельца файла.
• chgrp — изменяет группу файла.
• passwd — изменяет пароль пользователя.
Владельцы, члены группы и все остальные
Знакомясь с системой в главе 4, вы уже сталкивались со следующей проблемой при исследовании файлов, таких как /etc/shadow:
[[email protected] ~]$ file /etc/shadow
/etc/shadow: Обычный файл, нет прав на чтение
[[email protected] ~]$ less /etc/shadow
/etc/shadow: Отказано в доступе
Причина этого сообщения об ошибке заключается в том, что обычные пользователи не имеют права читать этот файл.
В модели безопасности Unix пользователь может владеть файлами и каталогами. Если пользователь владеет файлом или каталогом, он может управлять доступом к нему. Пользователи могут также принадлежать группе, состоящей из одного или нескольких пользователей, и получить права доступа к файлам и каталогам для членов группы, которые определяются владельцами. Кроме прав доступа для группы, владелец может также определить некоторые права доступа для всех остальных, их в терминологии Unix называют мир (world). Получить информацию о своей идентичности можно с помощью команды id:
[[email protected] ~]$ id
uid=500(me) gid=500(me) groups=500(me)
Давайте рассмотрим этот вывод. Когда создается учетная запись пользователя, ей присваивается число, которое называют идентификатором пользователя (user ID), или uid. Это число, исключительно ради удобства человека, отображается как имя пользователя. Пользователю назначается идентификатор основной группы (primary group ID), или gid, и дополнительно пользователь может включаться в состав других групп. Предыдущий пример взят из системы Fedora. В других системах, таких как Ubuntu, вывод команды может немного отличаться.
[[email protected] ~]$ id
uid=1000(me) gid=1000(me)
groups=4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),
46(plugdev),108(lpadmin),114(admin),1000(me)
Как видите, числа uid и gid отличаются. Это объясняется тем, что в Fedora нумерация учетных записей обычных пользователей начинается с 500, тогда как в Ubuntu — с 1000. Кроме того, пользователь в Ubuntu принадлежит множеству других групп. Это связано с особенностями управления привилегиями доступа к системным устройствам и службам в Ubuntu.
А где же вся эта информация хранится? Как и многое другое в Linux, она хранится в паре текстовых файлов. Учетные записи пользователей хранятся в файле /etc/passwd, а информация о группах — в файле /etc/group. Когда создаются новые учетные записи и группы, эти файлы изменяются вместе с файлом /etc/shadow, где хранится информация о пароле пользователя. Для каждой учетной записи в файле /etc/passwd определяется имя пользователя (для входа), числовой идентификатор пользователя (uid), числовой идентификатор основной группы (gid), действительное имя пользователя, путь к домашнему каталогу и командная оболочка входа (login shell). Заглянув внутрь /etc/passwd и /etc/group, можно заметить, что помимо учетных записей обычных пользователей здесь также хранятся учетные записи суперпользователя (uid 0) и различных других системных пользователей.
В главе 10, где рассказывается о процессах, вы узнаете, что некоторые из этих других «пользователей» в действительности существуют не просто так.
Несмотря на то что во многих Unix-подобных системах обычных пользователей включают в общую группу, такую как users, в современных дистрибутивах Linux принято создавать для каждого пользователя свою, уникальную группу с одним членом и именем, совпадающим с именем пользователя. Это упрощает распределение определенных типов привилегий.
Чтение, запись и выполнение
Права доступа к файлам и каталогам определяются в терминах права на чтение, права на запись и права на выполнение. Если взглянуть на вывод команды ls, можно увидеть некоторые подсказки о том, как эти права реализованы:
[[email protected] ~]$ > foo.txt
[[email protected] ~]$ ls -l foo.txt
-rw-rw-r-- 1 me me 0 2012-03-06 14:52 foo.txt
Первые 10 символов в выводе — это атрибуты файла (рис. 9.1). Первый из этих символов определяет тип файла. В табл. 9.1 перечислены типы файлов, которые чаще всего встречаются на практике (существуют также другие, реже используемые типы файлов). Остальные девять символов в атрибутах файла называются режимом доступа к файлу и представляют права на чтение, запись и выполнение для владельца файла, группы — владельца файла и всех остальных.
Рис. 9.1. Атрибуты файла
Установленные атрибуты режима r, w и x оказывают определенное влияние на файлы и каталоги, как показано в табл. 9.2.
Таблица 9.1. Типы файлов
Атрибут
Тип файла
-
Обычный файл
d
Каталог
l
Символическая ссылка. Обратите внимание, что для символических ссылок все остальные атрибуты имеют значение rwxrwxrwx и не отражают действительные права доступа. Фактические права доступа к файлу определяются атрибутами самого файла, на который указывает символическая ссылка
c
Специальный файл символьного устройства. Файлы этого типа соответствуют устройствам, таким как терминал или модем, которые обрабатывают данные как потоки байтов
b
Специальный файл блочного устройства. Файлы этого типа соответствуют устройствам, таким как привод жесткого диска или CD-ROM, которые обрабатывают данные блоками
Таблица 9.2. Атрибуты прав доступа
Атрибут
Файлы
Каталоги
r
Разрешается открывать и читать содержимое файла
Разрешается читать содержимое каталога, если вместе с этим атрибутом установлен атрибут права на выполнение
w
Разрешается записывать в файл или усекать его; однако этот атрибут не дает права переименовывать и удалять файлы. Возможность переименования и удаления файлов определяется атрибутами вмещающего каталога
Разрешается создавать, удалять и переименовывать файлы внутри каталога, если вместе с этим атрибутом установлен атрибут права на выполнение
x
Разрешается интерпретировать файл как программу и выполнять ее. Файлы, содержащие программы на языках сценариев, дополнительно должны быть доступны для чтения, иначе они не будут выполняться
Разрешается входить в каталог, то есть выполнять команду cd для перехода в него
В табл. 9.3 приводится несколько примеров установки атрибутов файлов.
Таблица 9.3. Примеры установки атрибутов прав доступа к файлам
Атрибуты файлов
Значение
-rwx------
Обычный файл, доступный владельцу для чтения, записи и выполнения. Никто другой не имеет прав доступа к файлу
-rw-------
Обычный файл, доступный владельцу для чтения и записи. Никто другой не имеет прав доступа к файлу
-rw-r--r--
Обычный файл, доступный владельцу для чтения и записи. Члены группы имеют право читать файл. Все остальные имеют право читать файл
-rwxr-xr-x
Обычный файл, доступный владельцу для чтения, записи и выполнения. Все остальные имеют право читать и выполнять файл
-rw-rw----
Обычный файл, доступный для чтения и записи только владельцу и членам группы
Lrwxrwxrwx
Символическая ссылка. Все символические ссылки имеют недействительные значения атрибутов. Фактические права доступа к файлу определяются атрибутами самого файла, на который указывает символическая ссылка
drwxrwx---
Каталог. Владелец и члены группы могут входить в каталог, создавать, переименовывать и удалять файлы внутри каталога
drwxr-x---
Каталог. Владелец может входить в каталог, создавать, переименовывать и удалять файлы внутри каталога. Члены группы могут входить в каталог, но не могут создавать, переименовывать и удалять файлы внутри каталога
chmod — изменение режима доступа к файлу
Для изменения режима (прав) доступа к файлу или каталогу используется команда chmod. Имейте в виду, что права доступа к файлу или каталогу может изменить только владелец. Команда chmod поддерживает два разных способа изменения режима: с использованием восьмеричных чисел и символического представления. Сначала рассмотрим использование восьмеричных чисел.
А почему именно восьмеричное?Восьмеричная (по основанию 8) и родственная ей шестнадцатеричная (по основанию 16) системы счисления часто используются для представления чисел в компьютерах. Мы, люди, рождаемся с десятью пальцами на руках (по крайней мере большинство из нас), поэтому для счета используем систему счисления с основанием 10. Компьютеры, напротив, рождаются с одним пальцем и потому используют для вычисления двоичную систему счисления (по основанию 2). Их числа состоят всего из двух цифр, нуля и единицы. Поэтому в двоичной системе счет выглядит так: 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011...
- Цифровой журнал «Компьютерра» № 164 - Коллектив Авторов - Прочая околокомпьтерная литература
- Третья мировая война. Какой она будет - Ричард Кларк - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 68 - Коллектив Авторов - Прочая околокомпьтерная литература
- Журнал PC Magazine/RE №10/2009 - PC Magazine/RE - Прочая околокомпьтерная литература
- Журнал PC Magazine/RE №05/2008 - PC Magazine/RE - Прочая околокомпьтерная литература
- Компьютерра PDA 21.08.2010-27.08.2010 - Компьютерра - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 204 - Коллектив Авторов - Прочая околокомпьтерная литература
- Компьютерра PDA 12.06.2010-18.06.2010 - Компьютерра - Прочая околокомпьтерная литература
- Фреймы для представления знаний - Марвин Минский - Прочая околокомпьтерная литература
- Руководство по компьютерной безопасности и защите информации для Больших Боссов - Карл Шкафиц - Прочая околокомпьтерная литература