Права доступа в Unix. Учетные записи. Пользователи и группы. Основной интерфейс пользователя Unix-систем: командная строка, командный интерпретатор (shell). Группы команд (утилит) Unix. Примеры команд.
11. Права доступа в Unix. Учетные записи. Пользователи и группы. Основной интерфейс пользователя Unix-систем: командная строка, командный интерпретатор (shell). Группы команд (утилит) Unix. Примеры команд.
Владельцы файлов
Группой называется определенный список пользователей системы. Пользователь может быть членом нескольких групп, одна из которых является первичной, а остальные - дополнительными.
/etc/passwd - список всех пользователей и их первичных групп; /etc/group - список всех групп и их дополнительных пользователей. В UNIX любой файл имеет двух владельцев:
- владельца-пользователя
- владельца-группу.
Права доступа к файлам
У каждого файла существуют атрибуты, называемые правами доступа. В UNIX существует три базовых типа доступа:
- u (user) для владельца-пользователя
- g (group) для владельца-группы
- o (other) для всех остальных
- а (all - объединяет 3 предыдущих класса). Для всех классов пользователей
В каждом из этих классов установлены три основных права доступа:
- r (read) право на чтение
- w (write) право на запись
- x (execute) право на выполнение
В первой колонке вывода команды ls -l можно просмотреть установленные права.
Пример:
$ ls -l
-
r w - r - - r w x 1 stud1 students … example.program 0 1 2 3 4 5 6 7 8 9 0 - тип файла: - обычный; d каталог; l символическая ссылка; c,b символьный/блочный файл устройств. 1-3 - права доступа для владельца-пользователя. 4-6 - права доступа для владельца-группы. 7-9 - права доступа для остальных. Права может изменять владелец-пользователь и(или) администратор. Для изменения прав доступа используется команда chmod: chmod
-
добавить права к текущим − отнять права от текущих = обнулить права и присвоить новые
Возможно также задание прав через числовой формат в восьмеричной системе счисления. Пример: chmod 666 *.
Значение прав доступа
Для обычных фалов - очевидно: право на чтение надо, чтобы прочитать файл, право на запись, чтобы иметь возможность файл изменить, а право на выполнение, чтобы запустить программу или скрипт. Примечание. Для успешного запуска скрипта необходимо установить атрибут r, чтобы командный интерпретатор мог построчно считывать текст скрипта. Для каталогов и символических связей интерпретация прав доступа проводится по-другому. Права символических ссылок совпадают с файлом, на который она указывает. На самой ссылке стоит 777 (всем все) и это не имеет значения. Для каталогов r позволяет получить имена (и только имена) файлов, находящихся в данном каталоге. X позволяет “выполнить”каталог, то есть заглянуть в метаданные и получить полную информацию о каталоге.
Атрибут w должен быть установлен для того, чтобы можно было изменять каталог: создавать и удалять файлы. Для удаления файла из каталога достаточно иметь установленный атрибут w для каталога, в котором он находился, а права файла при этом не учитываются.
Последовательность проверки прав
- если вы администратор (root), доступ разрешен. Права не проверяются.
- если операция запрашивается владельцем, идет проверка его прав. В соответствии с ними ему разрешается выполнение операци или нет.
- если операция запрашивается пользователем, входящим в группу, владеющую файлом, идет проверка его прав. Соответственно, он либо получает разрешение, либо нет.
- аналогично для всех остальных пользователей.
Группой называется определенный список пользователей системы. Пользователь может быть членом нескольких групп, одна из которых является первичной, а остальные - дополнительными. /etc/passwd - список всех пользователей и их первичных групп; /etc/group - список всех групп и их дополнительных пользователей. В UNIX любой файл имеет двух владельцев:
- владельца-пользователя
- владельца-группу.
При этом владелец-пользователь не обязательно принадлежит владельцугруппе. Команда ls -l выводит информацию о владельцах в третью и четвертую колонки. Для изменения владельцев используются команды:
- chown новый_влад. имя_файла. Например: chown sys something.doc.
- chgrp новый_влад. имя_файла. Например: chgrp adm something.doc.
Сменить владельца-пользователя может либо текущий владелец, либо администратор (root). Сменить владельца-группу может либо владелецпользователь для группу, к которой он сам принадлежит (POSIX), либо администратор.
Традиционный интерфейс - командная строка. После входа в систему для пользователя осуществляется запуск одной из командных оболочек. Общее название shell (eng. - оболочка), так как они являются внешним окружением ядра системы. Оболочка - это интерпретатор комманд (встроенных и внешних) и обладает мощным встроенным языком shell scripts, позволяющим писать сложные программы.
Как следует из названия, основное назначение командной оболочки - ввод и исполнение команд. Для ввода команд служит т.н. командная строка, содержащая приглашение к вводу.
Общий вид команды: команда [-ключи] аргумент1 … аргументN
После ввода команды, система производит поиск в каталогах программ, заданных переменной PATH . Если команда найдена, то она будет запущена. Иногда, если PATH не содержит нужного каталога, нужно указать полный путь к программе. Примечание. Текущий каталог НЕ ВХОДИТ в PATH. Программы из него запускаютсяь следующим образом: ./program