В главе 26 рассказывается, как посылать сигналы различным процессам и как перехватывать их, а также описывается специфическая конструкция "документ здесь", которая позволяет вручную вводить данные, ожидаемые сценарием.
Вам известно, почему при запуске системы автоматически загружаются некоторые программы? Это не будет для вас тайной, если вы ознакомитесь с главой 28, в которой мы поговорим об уровнях выполнения сценариев.
Глава 27 включает небольшую коллекцию полезных сценариев. Один из них позволяет запрещать другим пользователям доступ к вашим файлам, не модифицируя файл /etc/passwd.
Если вы интересуетесь вопросами разработки HTML–страниц, прочитайте главу 29, в которой рассматривается создание CGI–сценариев, но не с помощью языка Perl, а с помощью интерпретатора Bourne shell.
В книгу включены два приложения: приложение А, содержащее таблицу кодов ASCII, и приложение Б, в котором представлен ряд интересных shell–команд.
Желательно, чтобы читатель знал, как зарегистрироваться в системе, перейти в другой каталог и отредактировать файл в текстовом редакторе.
Чтобы запускать CGI–сценарии из главы 29, нужно располагать инсталлированным Web–сервером и иметь право выполнять CGI–сценарии.
Соглашения, принятые в книге
В книге употребляются следующие обозначения и шрифтовые выделения:
[Ctrl+клавиша]
Означает нажатие указанной клавиши одновременно с клавишей [Ctrl]; например, [Ctrl+O] — это указание одновременно нажать клавиши [Ctrl] и [О]
Courier New
Применяется во всех листингах сценариев, а также для обо значения результатов выполнения команд
Courier New
Используется для выделения командной строки
В первых двух частях книги можно встретить примечания наподобие следующего:
В Linux…
Они служат для того, чтобы кратко описать различия между синтаксисом рассматриваемой команды в BSD/Linux и System V.
Приводимые в книге сценарии протестированы в Linux (Red Hat) и в AIX. Не которые сценарии протестированы в системе Data Generals.
ЧАСТЬ 1
Интерпретатор shell
Файлы и права доступа к ним
Если вы не хотите, чтобы кто угодно получал доступ к вашим файлам, изучите назначение битов режима. Благодаря им можно управлять доступом к файлам и каталогам, а также указывать тип доступа к создаваемым файлам. Это лишь небольшая часть системы безопасности в 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