Linux и UNIX: программирование в shell. Руководство разработчика. [Дэвид Тейнсли] (fb2) читать постранично, страница - 3

- Linux и UNIX: программирование в shell. Руководство разработчика. 1.75 Мб, 400с. скачать: (fb2) - (исправленную)  читать: (полностью) - (постранично) - Дэвид Тейнсли

 [Настройки текста]  [Cбросить фильтры]

описать различия между синтаксисом рассматриваемой команды в BSD/Linux и System V.

Приводимые в книге сценарии протестированы в Linux (Red Hat) и в AIX. Не которые сценарии протестированы в системе Data Generals.

ЧАСТЬ 1

Интерпретатор shell

ГЛАВА 1

Файлы и права доступа к ним

Если вы не хотите, чтобы кто угодно получал доступ к вашим файлам, изучите назначение битов режима. Благодаря им можно управлять доступом к файлам и каталогам, а также указывать тип доступа к создаваемым файлам. Это лишь небольшая часть системы безопасности в UNIX и Linux. Но на данный момент нас интересует не система безопасности в целом, а только та ее часть, которая имеет отношение к файлам и каталогам.

В этой главе рассматриваются следующие темы:

   • права доступа к файлам к каталогам;

   • биты смены идентификаторов {SUID и SGID);

   • изменение владельца файла или каталога с помощью команд chown и chgrp;

   • команда umask;

   • символические ссылки.

Файл принадлежит создавшему его пользователю, а также группе, членом которой данный пользователь является. Владелец файла может самостоятельно определять, кому позволено производить запись в файл, читать его содержимое, а также запускать файл на выполнение, если он является исполняемым.

Примечание:

Пользователь root (системный администратор) может отменить практически все ограничения, заданные рядовым пользователем.

Доступ к созданному файлу может осуществляться тремя способами:

   • Путем чтения, при этом содержимое файла отображается на экране.

   • Путем записи, при этом содержимое файла редактируется или удаляется.

   • Путем выполнения, если файл содержит сценарий интерпретатора shell либо является программой.

Пользователи, имеющие доступ к файлу, делятся на три категории:

   • Владелец файла, создавший его.

   • Члены группы, к которой относится владелец файла.

   • Остальные пользователи.

1.1. Информация о файлах

После создания файла система сохраняет о нем всю информацию, которая может когда‑либо понадобиться, в частности:

   • раздел диска, где физически находится файл;

   • тип файла;

   • размер файла;

   • идентификатор владельца файла, а также тех, кому разрешен доступ к файлу;

   • индексный дескриптор;

   • дата и время последнего изменения файла

   • режим доступа к файлу.

Рассмотрим типичный список файлов, полученный в результате выполнения команды ls -l.

$ ls -l

total 4232

-rwxr‑xr‑x 1 root root 3756 Oct 14 04:44 dmesg -r‑xr‑xr‑x 1 root root 12708 Oct 3 05:40 ps -rwxr‑xr‑x 1 root root 5388 Aug 5 1998 pwd Информацию, предоставляемую командой ls -l, можно разбить на следующие части:


total 4232 Суммарный размер файлов в каталоге -rwxr‑xr‑x Режим доступа к файлу, отображаемый в виде строки из десяти символов. Первый символ ('-') указывает на то, что текущая запись относится к файлу (если на его месте стоит символ d, значит, запись относится к каталогу). Остальные символы делятся на три категории: rwx — права владельца (первая триада); r‑x — права группы (вторая триада); r‑x — права остальных пользователей (последняя триада). Символ r означает право чтения, символ w — право записи, символ x — право выполнения, символ ' — ' -oтсутствие соответ- ствующего права. Система разрешений подробно описана ниже 1 Количество жестких ссылок на файл root Идентификатор владельца файла root Идентификатор группы, в которую входит владелец файла 3756 Размер файла в байтах Oct 14 04:44 Дата и время последнего изменения файла dmesg Имя файла

1.2. Типы файлов

В начале строки режима может стоять не только символ ' — " или d, ведь в каталоге насчитывается до семи различных типов записей (табл. 1.1):

Таблица 1.1. Типы файлов


d Каталог l Символическая ссылка (указатель на другой файл) s Сокет b Специальный блочный файл с Специальный символьный файл p Файл именованного канала — Обычный файл или, если выразиться точнее, ни один из файлов, перечисленных выше

1.3. Права доступа к файлам

Давайте создадим файл, используя команду touch:

$ touch myfile

Теперь выполним команду ls -1:

$ ls -1 myfile

-rw‑r--r-- 1 dave admin 0 Feb 19 22:05 myfile


Мы получили пустой файл, и, как и ожидалось, первый символ в строке режима свидетельствует о том, что это обычный файл. В результате выполнения большинства операций по созданию файлов образуются либо обычные файлы, либо символические ссылки (о них говорится ниже).


Права владельца Права группы Права остальных пользователей rw- r-- r-- Следующие три символа в строке режима (rw-) описывают права доступа к созданному файлу со стороны его владельца (пользователь dave). За ними следуют символы r--, указывающие на права группы, в которую входит этот пользователь (в данном случае он является членом группы admin). Последние три символа (r--) представляют собой права пользователей, не принадлежащих к данной группе.

Существует три вида разрешений:


r Право чтения данного файла w Право записи/изменения