Ктитров Администрирование ОЦ УНИХ 2007
.pdfВ режиме последней строки вводимая команда отображается в последней строке экрана.
: |
Командный |
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 |
разрешение/запрет вывода сообщений от других |
|
пользователей; |
отправка/получение почты |
|
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