Кто из нас не сталкивался с такой ситуацией: при попытке войти в
каталог или просмотреть файл, система выдает "Отказано в доступе!".
Начинающий линуксоид недоумевает: что случилось? И подозревает чуть ли
не крах системы. Но знающий понимает, что у нас просто нет прав доступа
к файлу. Попробуем, например, просмотреть содержимое каталога /root с помощью файлового менеджера Nautilus. Считаем, что вы знаете,
как запустить Nautilus. Если
же нет, то ждите следующих уроков, в одном из которых мы будем говорить
о файловых менеджерах.
Запускаем Nautilus, выбираем Файловая системы, и открываем root.
Вернее, пытаемся открыть. Система выдает следующее:
Ну что же, будем разбираться.
Линукс многопользовательская система, поэтому операционная система
должна уметь разграничивать доступ к файлам пользователей. То есть,
файлы, созданные одним пользователем, другой пользователь не должен
иметь права (изначально) изменять его.
В
основе механизмов разграничения прав доступа лежат имена пользователей
и имена групп пользователей. Каждый пользователь имеет уникальное имя,
а в системе создаются несколько групп пользователей. Каждый
пользователь может быть членом одной или нескольких групп. Существует и
суперпользователь root, который может менять состав участников групп.
Очевидно, что разные пользователи могут иметь разные права доступа к
файлу.
Для того, чтобы просмотреть пользователей системы, следует выполнить
Система - Администрирование - Пользователи и группы. Здесь можно
создать нового пользователя, удалить пользователя, изменить имя
пользователя, сменить тип учетной записи (подобное есть и в ОС
Windows). Здесь же можно просмотреть список
существующих групп, а также к какой группе относится пользователь. Если
нужно, то здесь же можно пользователя включить в состав групп.
Предупреждение: меняйте только то, в чем абсолютно уверены!
Теперь давайте посмотрим на результат работы команды ls -l
Понятно, что команда ls выводит список содержимого текущего каталога. Та же команда с ключом -l выводит список файлов с указанием прав доступа к ним. На этом о команде ls закончим, кто желает расширить свои знания о ней, наберите в консоле команду ls --help.
Теперь будем разбираться с загадочными буквами r, w, x, d и -. Эти символы разбиты на 4 группы. Первая группа (один символ) указывает на тип файла. Могут принимать значение:
- - - обычный файл;
- d - каталог;
- b - файл блочного устройства;
- c - файл символьного устройства;
- s - доменное гнездо (socket);
- p - именованный канал (pipe);
- l - символическая ссылка (link).
Далее идут три группы по три символа, например rw-r--r--. Первая группа rw-, вторая r--, третья r--.
Здесь сложного ничего нет. Буквы обозначают следующее: r- чтение,
w-запись (изменение), x- исполнение. Первая группа определяет права
доступа для владельца вторая группа - для группы пользователей, третья
группа - для всех остальных пользователей системы.
Приведем пример: Каталог schoolmod (на то, что это каталог, указывает d) имеет drwxr-xr-x. Владелец каталога schoolmod имеет права на чтение (r), изменение (w), запуск файла на исполнение (х).
Группа пользователей, в которую входит владелец, имеет права чтения и
запуска файла на выполнение. Прав на изменения нет. Остальные
пользователи имеют права на чтение и на запуск. Здесь можно сделать
вывод: права определены не только для файлов, но и каталогов. Можно еще
заметить, что каталог - это просто файл, содержащий список файлов.
Следует помнить еще вот что: если вы даете кому-то доступ к файлу,
который находится в вашем каталоге, то вы должны дать права доступа и
на этот каталог.
Для изменения прав доступа используется команда chmod. Ее можно использовать в двух вариантах. Мы рассмотрим одни из них, который основан на цифровом представлении прав. Символ r кодируется цифрой 4, символ w - цифрой 2, символ х - цифрой 1.
Для того, чтобы дать пользователю какой-нибудь набор прав, нужно
сложить соответствующие цифры. Получается по одной цифре для владельца,
для группы и для остальных пользователей. Например, набор 760
обозначает: для владельца - полные права (4+2+1=7), для группы
пользователей - права на чтение и изменение (4+2=6), для других
пользователей прав никаких нет.
Для изменения прав доступа применяем команду chmod с нужным аргументом:
chmod 760 имя_файла
Очевидно, что права 777 - для всех пользователей всех групп - полные права.
Вы обратили внимание на цифры, которые стоят между группами прав доступа и именем владельца файла? На приведенном рисунке видно,
что эти значения от 1 до 6. Эти цифры - счетчики связей. Для файлов это
обычно 1, а для каталогов этот счетчик показывает число подкаталогов
плюс два (для самого каталога и каталога, в который он входит, т.е.
каталога-родителя).
Конечно, в этом уроке мы даем только базовые понятия прав доступа.
Кто хочет расширить свои знания о правах доступа, может обратиться к
соответствующей литературе или к материалам в сети Интернет. Удачи!
|