Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ктитров Администрирование ОЦ УНИХ 2007

.pdf
Скачиваний:
34
Добавлен:
16.08.2013
Размер:
864.18 Кб
Скачать

В режиме последней строки вводимая команда отображается в последней строке экрана.

:

Командный

a, A

i, I

?

режим

 

o, O

/

 

 

s

 

Автомати-

ESC

 

Режим

чески

Режим

 

 

последней

 

 

ввода

строки (ех)

 

 

 

Рис.1. Режимы редактора vi

Знаком ”~” (тильда) в первой позиции помечаются пустые (несуществующие) строки файла.

Некоторые команды vi приведены в табл. 1.2.

 

Таблица 1.2

dd

Удаление текущей строки

Yy

Копирование текущей строки в буфер

Yдвижение

Занесение отмеченных курсором символы в буфер

курсора<Es>

 

oВставка новой строки снизу

OВставка новой строки сверху

aДобавление после курсора

AДобавление после текущей строки

iВставка перед курсором

I

Вставка перед текущей строкой

sЗамена символа на символ, вводимый с клавиатуры

pВставка текста из буфера

. (точка)

Повтор последней выполненной команды

u

Отмена последней команды

UОтмена всех изменений в текущей строке

x

Удаление символа над курсором

11

1.6. Электронный справочник man

В Unix имеется электронный справочник, содержащий описание назначения команд, их синтаксиса, примеры использования и пр. Справочник вызывается командой man :

man ключевое_слово подробная справка по ключевому

слову;

man –s страница ключевое_слово указанная страни-

ца для ключевого слова;

man –k ключевое_слово – список страниц, содрежащих справку по ключевому слову.

1.7. Основные команды shell

Основные команды shell, необходимые для выполнения задания, приведены в табл. 1.3.

 

Таблица 1.3

Команда

Назначение

who

вывод информации об активных пользователях

echo

вывод сообщений на терминал

banner

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

man

вызов оперативной справочной системы

date

вывод текущей даты

write

передача сообщений на терминал другого пользова-

 

теля

mesg

разрешение/запрет вывода сообщений от других

 

пользователей;

mail

отправка/получение почты

news

знакомство с новостями системы;

pwd

вывод абсолютного маршрутного имени текущего ра-

 

бочего каталога;

cd

изменение рабочего каталога

ls

вывод информации о содержимом каталога

mkdir

создание каталога

rmdir

удаление каталога

touch

обновление временной метки файла

cp

копирование файлов

cat

объединение и вывод на экран содержимого файлов

12

 

Продолжение таблицы 1.3

Команда

Назначение

more

постраничный просмотр содержимого файла

mv

перемещение или переименование файла

rm

удаление файла

ln

создание ссылки на файл

alias

создание псевдонима

tr

преобразование символов

exit

завершение текущего shell

tee

перехват результатов конвейера

cut

выделение полей из строки

grep

поиск по шаблону

pr

вывод файла на стандартный вывод в заданном фор-

 

мате

sort

сортировка

head

вывод первых строк файла

tail

вывод последних строк файла

wc

подсчет количества символов, слов и строк

read,echo

чтение и вывод значений переменных

test

оценивание значения выражения

expr,let

вычисление арифметических выражений

1.8. Shell-программирование

Shell позволяет сохранять последовательность команд в файле и затем выполнять ее. Чтобы запускать файл с shell-программой на выполнение, нужно добавить к правам доступа право на исполнение:

$ chmod +x имя_файла_с_программой

Ветвление в shell-программах организуется с помощью операторов || ,&& , if-then , if-then-else, case.

Операторы цикла: for, while, until.

Упражнения

1. Выведите сообщение из нескольких строк с помощью команд echo и banner.

13

2.Выведите дату в две строки: на первой ¾ день, месяц, год, на второй ¾ текущее время, снабдив вывод комментарием.

3.Используя команду mesg, определите, разрешены ли сообщения на Ваш терминал. Запретите сообщения. Какова будет реакция системы, если кто-нибудь попытается передать Вам сообщение?

4.Определите имя своего HOME-каталога.

5.Создайте в своем HOME-каталоге подкаталоги вида:

 

 

fruits

 

flowers

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

apple

pear grapes

 

 

rose violet dandelion

 

dark green

6. Находясь в HOME-каталоге, создайте файл macintosh в имеющемся каталоге apple и несколько файлов в каталогах dark и green. Войдите в каталог flowers. Находясь в каталоге flowers, скопируйте все подкаталоги fruits вместе с находящимися в них файлами в специально созданный каталог basket.

7.Находясь в каталоге flowers, удалите каталог fruits.

8.Создайте в HOME-каталоге текстовый файл myfile из нескольких строк с помощью команды cat. Скопируйте файл myfile в файл mycopy. Просмотрите содержимое обоих файлов. Переместите файл mycopy в каталог flowers.

9.Находясь в HOME-каталоге, создайте ссылку mylink на файл mycopy, находящийся в каталоге flowers. Просмотрите файл-ссыл- ку. Добавьте строку к файлу mylink. Какие из файлов mylink, mycopy, myfile изменились? Почему?

10.Определите число ссылок для файлов mylink, mycopy, myfile. Удалите файл mycopy. Что произошло с файлом-ссылкой? Определите число ссылок для файлов mylink, myfile.

11.Создайте псевдоним dir, распечатывающий содержимое текущего каталога в расширенном формате.

12.Используя команду touch, создайте файлы в новом каталоге

стакими именами, чтобы одновременно:

— шаблону a* соответствовало 5 файлов;

14

шаблону *a соответствовало 4 файла;

шаблону ??.? соответствовало 3 файла;

шаблону *aa* соответствовало 2 файла;

шаблону ??? соответствовал 1 файл.

13.Замените в одном заданном файле все строчные буквы на прописные, в другом – все прописные на строчные. Исключите из файла все повторяющиеся пробелы (используйте tr).

14.Создайте файл с именем *. Удалите только этот файл. Будьте осторожны при использовании символов генерации имен файлов!

15.С использованием команды cat удвойте содержимое файла, приписав исходное содержимое к концу этого же файла. Перейдите

вкаталог flowers. Добавьте в файл spisok список содержимого каталога flowers. Просмотрите содержимое файла

16.Попытайтесь прочитать с помощью команды cat несуществующий файл. Какова реакция системы? Сделайте то же самое, перенаправив сообщения об ошибках в файл myerror. Что Вы видите на экране? Просмотрите файл myerror.

17.Создайте конвейер для получения списка только имен и прав доступа к файлам, которые находятся в Вашем рабочем каталоге.

18.Измените построенный конвейер так, чтобы список сохранялся в файле spisok Вашего HOME-каталога, а на экран выводи-

лось только число файлов в списке.

19.Создайте псевдоним loggedon, который будет выводить на экран упорядоченный в алфавитном порядке список имен работающих в системе пользователей.

20.Выведите текущую дату на экран большими буквами с помощью команд date и banner.

21.Напишите shell-программу info, которая будет просить пользователя ввести имя, адрес, число, месяц и год рождения и выводить эту информацию в обратном вводу порядке

22.Напишите shell-программу, которая будет выводить на экран приглашение на ввод числа, сохранять введенное число в переменной Y, и печатать сообщение “Y is greater than 7”, если значение Y больше 7, и “Y is not greater than 7” в противном случае.

15

23.Напишите shell-программу, которая выводит на экран следующую статистику:

а) свое имя; б) количество аргументов, с которыми она запущена;

в) печатает каждый свой аргумент и длину аргумента в символах;

24.Напишите shell-программу, которая определяет количество аргументов в командной строке и выдает сообщение об ошибке, если количество аргументов не равно трем, или сами аргументы, если их количество равно трем.

25.Напишите shell-программу, которая будет выдавать приглашение на ввод идентификатора пользователя, проверять идентификатор на соответствие используемым в системе и выводить полное имя HOME-каталога или, в случае недопустимого идентификатора, выдавать сообщение об ошибке.

26.Напишите shell-программу hello, обеспечивающую следующую реакцию на аргументы командной строки:

аргумент “-d” — программа будет выполнять команду date; аргумент “-l” — программа выведет содержимое текущего ка-

талога; при отсутствии или неправильном задании аргументов програм-

ма будет выводить справку о своих опциях.

27.Напишите программу words, которая будет выдавать пользователю приглашение на ввод по одному слову до тех пор, пока он не введет слово “end”. После ввода слова “end” программа должна вывести на экран все введенные слова в алфавитном порядке.

28.Измените приглашение системы так, чтобы оно содержало полное маршрутное имя текущего рабочего каталога.

16

Практическое занятие 2

АДМИНИСТРИРОВАНИЕ ПОЛЬЗОВАТЕЛЕЙ

Unix – многопользовательская система, т.е. в системе могут одновременно работать несколько пользователей. Каждый пользователь в системе имеет регистрационное имя и числовой идентификатор (UID). При создании пользователя для него может быть определен личный каталог и командный процессор.

Пользователи объединяются в группы. Каждый пользователь должен принадлежать не менее чем одной группе.

Информация о пользователях, их первичных группах и личных каталогах хранится в файле /etc/passwd.

Данные о группах пользователей содержатся в файле /etc/group, зашифрованные пароли – в файле /etc/shadow. Эти файлы доступны для редактирования только суперпользователю.

2.1. Формат файла /etc/passwd

Одна строка файла соответствует одному пользователю. Строки имеют следующий формат:

username:password:uid:gid:comment:home_dir:login_shell

|

|

|

|

|

|

|

|

|

|

|

|

|

ком.процессор

|

|

|

|

|

личный каталог

|| | | комментариии

|| | первичная группа пользователя

|| идентификатор пользователя

| символ-заполнитель для зашифрованного пароля регистрационное имя пользователя

2.2. Формат файла /etc/shadow

Детали шифрования пароля и его устаревание хранятся в файле /etc/shadow. Строки имеют следующий формат:

username:passwd:lastchg:min:max:warn:inactive:expire,

где passwd – 13-символьный шифрованный пароль

или LK -недоступная запись, NP -- нет пароля, lastchg -- количество дней между 1.01.70 и датой

последнего изменения,

17

min -- минимальное число дней перед сменой пароля, max -- максимальное число дней действия пароля, warn -- количество дней, в течение которых выдается

предупреждение об устаревании пароля,

inactive -- количество дней неактивности учетной записи перед

ее блокировкой,

expire -- дата истечения срока действия учетной записи.

2.3. Формат файла /etc/group

Одна строка соответствует одной группе:

group_name:group_password:gid:user_list

|

|

|

|

|

|

|

список пользователей, входящих

|

|

| в группу (через запятую)

|

|

числовой идентификатор группы

|

поле осталось от ранних версий, обычно пусто или *

название группы

Группы, существующие по умолчанию root::0:root

other::1:

bin::2:root,bin,daemon

sys::3:root,bin,sys,adm

adm::4:root,adm,daemon

uucp::5:root,uucp

mail::6:root

tty::7:root,tty,adm

lp::8:root,lp,adm

nuucp::0:root,nuucp

staff::10:

daemon::12:root,daemon

sysadmin::14:

nobody::6001:

noaccess::6002:

nogroup::65534:

Для создания новых учетных записей пользователя и группы не рекомендуется напрямую редактировать файлы /etc/passwd и etc/group, т.к. в некоторых системах информация о пользователях хранится в системных таблицах, лучше пользоваться утилитами.

18

2.4. Графическая утилита admintool

Форма admintool позволяет добавлять и удалять пользователей и группы и изменять атрибуты пользователей.

2.5. Утилиты командной строки

Утилиты командной строки (см.табл. 2.1) являются более гибким инструментом администрирования пользователей по сравнению с утилитой admintool.

Таблица 2.1

useradd

Добавление пользователя

userdel

Удаление пользователя

usermod

Изменение атрибутов пользователя

groupadd

Добавление группы

groupmod

Изменение группы

groupdel

Удаление группы

passwd

Изменение пароля пользователя

2.6. Переключение бюджета пользователя

В процессе работы пользователь может изменить имя регистрации – открыть новый сеанс работы в системе, не завершая старый (команда su) или изменить свою группу (команда newgrp).

2.7. Файлы инициализации пользователей

Принятые по умолчанию файлы инициализации (создаются автоматически в home-каталоге при создании учетной записи пользователя):

 

Таблица 2.2

Командный интерпретатор

файл инициализации

Bourne shell (sh)

.profile

C shell (csh)

.login

.cshrc

Korn shell (ksh)

.profile

.kshrc

Bourne Again shell (bash)

.profile

.bashrc

 

19

"Заготовки" для пользовательских файлов инициализации находятся в каталоге /etc/skel: файлы local.cshrc, local. profile, local.login.

Пример файла инициализации .profile:

PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/ccs/bin:. MANPATH=/usr/share/man:/usr/local/man

umask 022

export PATH МANРАТН

2.8. Файлы, регламентирующие работу пользователей

Файл /etc/default/login используется для ограничения

доступа суперпользователя к системе. Настройки команды su определяются в файле/etc/default/su .

Базовые требования к паролям пользователей задаются в файле

/etc/default/passwd.

2.9. Аудит пользователей

Основные команды аудита пользователей приведены в табл. 2.3

 

 

 

 

Таблица 2.3

who

 

Список

работающих пользова-

 

телей

 

 

 

 

 

 

whodo

 

Пользователи и их процессы

last

 

Сеансы

заданных пользователей

 

и их терминалы

 

 

logins -x -l

имя_польз.

Мониторинг

деятельности поль-

зователей

 

 

 

 

logins -p

 

Выявление

пользователей, не

 

имеющих паролей

 

 

Если по какой-то причине необходимо запретить вход пользователей в систему, то для этого суперпользователь может создать файл /etc/nologin. В этом файле можно написать сообщение,

которое будет выводиться пользователю при его входе в систему.

20