Литвек - электронная библиотека >> Дэвид Тейнсли >> Руководства и инструкции и др. >> Linux и UNIX: программирование в shell. Руководство разработчика. >> страница 2
должен хорошо представлять, какие файлы выполняются в процессе регистрации,

В главе 14 подробно описаны механизмы управления локальными переменными интерпретатора shell и глобальными переменными среды,

В главе 15 даны рекомендации относительно того, как правильно употреблять различного рода кавычки и другие специальные символы интерпретатора shell, что позволит вам эффективно работать с системными переменными.

Основы shell–программирования

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

Глава 19 содержит описания функций. Кроме того, в ней представлены способы их многократного вызова из различных сценариев.

Важным моментом является передача аргументов сценарию интерпретатора shell. В главе 20 показано, как обрабатывать аргументы, переданные сценарию.

В главе 21 вы узнаете, как форматировать текст при выводе на экран. Отдельная глава, 22, посвящена вопросам обновления файлов. В главе 23 сосредоточены основные сведения об отладке сценариев.

Завершает данную часть обзор встроенных shell–команд, которые до этого не рассматривались.

Совершенствование навыков по написанию сценариев

В пятой части состоится знакомство с современными методами создания сценариев.

В главе 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

ГЛАВА 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 Идентификатор