А. Робачевский - Операционная система UNIX (1114671), страница 13
Текст из файла (страница 13)
Пароль администратора должен периодически меняться, независимоот обстоятельств.5. Это может показаться странным, но не стоит заставлять пользователейменять пароли чересчур часто. Скорее всего, в этом случае пользова!тель выберет не лучший пароль. Но менять пароли все же следует.Частота смены зависит от степени доступности вашей системы (изоли!рованная станция, сервер с сетевым доступом, наличие сетевых экра!нов).Не преуменьшайте роль паролей в системе.Стандартные пользователи и группыПосле установки UNIX обычно уже содержит несколько зарегистрирован!ных пользователей. Перечислим основные из них (в разных версиях сис!темы UID этих пользователей могут незначительно отличаться):ИмяrootbincronилиnewsПользовательСуперпользователь, администратор системы, UID=0. Пользователь сэтим именем имеет неограниченные полномочия в системе.
Для негоне проверяются права доступа, и таким образом он имеет все "рычаги"для управления системой. Для выполнения большинства функций ад%министрирования требуется вход именно с этим именем. Следует отме%тить, что root — это только имя. На самом деле значение имеет UID.Любой пользователь с UID=0 имеет полномочия суперпользователяПсевдопользователь, владеющий файлами системы ведения журналовОбычно это владелец всех исполняемых файлов, являющихся коман%дами UNIXПсевдопользователь, владеющий соответствующими файлами, от име%ни которого выполняются процессы подсистемы запуска программ порасписаниюПсевдопользователь, от имени которого выполняются процессы систе%мы печати, владеющий соответствующими файламиПсевдопользователь, от имени которого выполняются процессы систе%мы телеконференцийwww.books-shop.com56ГлаваРабота в операционной системе UNIX(продолжение)ИмяПользовательnobodyuucpПсевдопользователь, используемый в работе NFSПсевдопользователь подсистемыcopy (uucp), позволяю%щей передавать почтовые сообщения и файлы между UNIX%хостамиНовая система также содержит ряд предустановленных групп.
Посколькугруппы, как правило, менее значимы, приведем лишь две категории:ИмяГруппаroot или wheelАдминистративная группа, GID=0user или users или staff Группа, в которую по умолчанию включаются все обычныепользователи UNIXПользовательская среда UNIXСегодня характер работы в UNIX существенно отличается от того, каким онбыл, скажем, пятнадцать лет назад. Графический многооконный интерфейс,миллионы цветов, системы меню, техника drag!and!drop, — все это, казалосьбы, стирает различия в работе с UNIX и, например, с Windows NT. Новзгляните внимательнее на экран монитора — и вы обязательно найдете хо!тя бы одно окно простого алфавитно!цифрового терминала.Это — базовая пользовательская среда.
Интерфейс командной строки мо!жет показаться безнадежно устаревшим, но в случае с UNIX это — самыйнепосредственный способ выполнения множества небольших задач адми!нистрирования. И программа, с которой вы рано или поздно столкне!тесь, — командный интерпретатор shell. Поэтому здесь мы рассмотрим ба!зовый пример работы в UNIX — использование командной строки интер!претатора shell.Командный интерпретатор shellВсе современные системы UNIX поставляются по крайней мере с тремякомандными интерпретаторами: Bourne shellС shellиshellСуществует еще несколько интерпретаторов, напри!мерshell (bash), со сходными функциями.Командный интерпретатор занимает важное место в операционной систе!ме UNIX, прежде всего, благодаря следующим обстоятельствам:www.books-shop.comПользовательскаяUNIX571. Первая программа, с которой по существу начинается работа пользо!вателя, — shell.
В UNIX реализуется следующий сценарий работы всистеме (рис. 1.8):• При включении терминала активизируется процесскоторый является сервером терминального доступа и запускаетпрограммукоторая, в свою очередь, запрашивает упользователя имя и пароль.• Если пользователь зарегистрирован в системе и ввел правиль!ный пароль,запускает программу, указанную в послед!нем поле записи пользователя в файлеВ принципеэто может быть любая программа, но в нашем случае — это ко!мандный интерпретатор shell.• Shell выполняет соответствующий командный файл инициали!зации, и выдает на терминал пользователя приглашение.
С этогомомента пользователь может вводить команды.• Shell считывает ввод пользователя, производит синтаксическийанализ введенной строки, подстановку шаблонов и выполняетдействие, предписанное пользователем (это может быть запускпрограммы, выполнение внутренней функции интерпретатора)или сообщает об ошибке, если программа или функция не най!дены.• По окончании работы пользователь завершает работу с интер!претатором, вводя команду exit, и выходит из системы.2. Командный интерпретатор является удобным средством программиро!вания. Синтаксис языка различных командных интерпретаторов не!сколько отличается, в качестве базового мы рассмотрим командныйинтерпретатор Bourne.
С помощью shell вы можете создавать сложныепрограммы, конструируя их, как из кирпичиков, из существующихутилит UNIX. Программы на языке shell часто называют скриптамиили сценариями (script). Интерпретатор считывает строки из файла!скрипта и выполняет их, как если бы они были введены пользовате!лем в командной строке.Как уже упоминалось, при входе пользователя в систему запускаетсяегоскрипт, выполняющий несколько функций:установку пути поиска программ, инициализацию терминала, опреде!ление расположения почтового ящика. Помимо этого может быть вы!полнен целый ряд полезных действий, — например, установка при!глашения. Скорее всего вам придется "покопаться" в этом скрипте, покрайней мере, чтобы добавить необходимые пути поиска. Инициали!зационный скрипт находится в домашнем каталоге пользователя.В данном разделе мы не останавливаемся на подробностях запускабудут рассмотрены позднее в главе 3.Эти вопросыwww.books-shop.comГлава 1.58в операционной системе UNIXДля разных командных интерпретаторов используются различныескрипты инициализации:Командный интерпретаторBourne shell (sh)С shell (csh)Korn shell (ksh)Bourne%Again shell (bash)СкриптыСкриптытерпретатора.Скрипт инициализацииииииивыполняются при первом входе в систему.выполняются при каждом запуске ин!Рис.
1.8. Процессы, обеспечивающие вход пользователя в системуwww.books-shop.comUNIX4. Наконец, основная инициализация операционной системы происхо!дит в результате выполнения скриптов shell. Если вам понадобитсямодифицировать процесс инициализации (например, добавить новыйсистемный сервис), то придется заглянуть в эти скрипты.Синтаксис языка Bourne shellЛюбой из стандартных командных интерпретаторов имеет развитый языкпрограммирования, позволяющий создавать командные файлы, илискрипты, для выполнения достаточно сложных задач. Следует, однако,иметь в виду, что shell является интерпретатором, он последовательно счи!тывает команды из скрипта и выполняет их, как если бы они последова!тельно вводились пользователем с терминала.
При таком характере работытрудно ожидать большой производительности от скриптов, однако их эф!фективность определяется простотой и наглядностью. Если же производи!тельность программы играет главную роль, то самым эффективным сред!ством по!прежнему остается язык программирования С.В этом разделе приведены сведения о языке Bourne shell, достаточные,чтобы разобраться в системных скриптах и написать простейшие скрипты.Данное описание ни в коем случае не претендует на полное руководствопо программированию на языке командного интерпретатора.Общий синтаксис скриптаКак уже было замечено, скрипт представляет собой обычный текстовыйфайл, в котором записаны инструкции, понятные командному интерпре!татору. Это могут быть команды, выражения shell или функции.
Команд!ный интерпретатор считывает эти инструкции из файла и последовательновыполняет их.Безусловно, как и в случае любого другого языка программирования, при!менение комментариев существенно облегчает последующее использова!ние и модификацию написанной программы.
В Bourne shell комментарииначинаются с символа '#':Этот скрипт выполняет поиск "мусора" (забытых временныхфайлов, файлов core и т.п.) в каталогах пользователейКомментарии могут занимать не всю строку, а следовать после команды:find /home name core printВыполним поиск файлов coreПоскольку в системе могут существовать скрипты для различных интер!претаторов, имя интерпретирующей команды обычно помещается в пер!вой строке следующим образом:В данном случае последующий текст скрипта будет интерпретироватьсяBourne shell. Заметим, что при запуске скрипта из командной строки (дляȾɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com60Глава 1.