os_lab3x

advertisement
Нижегородский Государственный Технический
Университет им. Р.Е.Алексеева
Кафедра «Вычислительные системы и технологии»
Лабораторная работа №3 по
дисциплине: «Операционные системы»
Работа пользователя в Linux
Выполнил студент группы 10-В-1
Сидоренко О.О.
Проверил:
Кочешков А.А.
Нижний Новгород
2013 год
Цель работы: Проделать все пункты, указанные в плане работы.
План работы:
1.
Регистрация в системе.
Зарегистрироваться в системе. Изучить правила входа в систему и завершения работы (команды
login, logout, passwd, exit, shutdown, Ctrl+Alt+Del, Alt+Fn).
2.
Основные информационные команды.
Научиться пользоваться диалоговым руководством man, ознакомиться с файлами HOW-TO в
каталоге /usr/doc/HOW-TO (при их наличии ).
3.
Управление бюджетами пользователей.
В режиме суперпользователя выполнить команды who, id, logname, finger.
Создать новый бюджет командой adduser. Ознакомиться с файлами паролей /etc/passwd, /etc/shadow,
составом домашних каталогов и профилей пользователей /etc/skel/profile.
4.
Работа с файловой системой.
Ознакомиться с командами mount, umount, df, mkfs, fsck.
С помощью команды df ознакомиться с разделами винчестера.
Выполнить монтирование файловой системы на дискете. Изучить описание автоматически
монтируемых файловых систем в файле /etc/fstab.
5.
Управление файлами.
Изучить и опробовать:
-получение информации о файлах и каталогах; ls;
-команды файловых операций: cd, pwd, cp, mv, rm,mkdir, rmdir;
-создание прямой и символической ссылки ln;
-команды поиска find, вывода cat, tee, more, file;
-перенаправление потоков ввода-вывода (<,>,>>) и каналы (|);
-управление правами доступа: chmod, chown, chgrp;
-настройка различных прав доступа с проверкой возможных операций над файлами;
-утилиты группы mtools для работы файловой системой MS-DOS.
6.
Управление заданиями.
Научиться запускать и управлять заданиями в оперативном и фоновом режимах. Команды jobs, ps,
top, fg, bg, kill, stop, at, Ctrl+Z.
7.
Работа в оболочке MidnightCommander.
Структура и назначение основных каталогов файловой системы Linux.
8.
Получение информации о системе и обзор средств центра управления KDE (Gnome).
Выполнение работы:
1. Регистрация в системе.
Зарегистрироваться в системе. Изучить правила входа в систему и завершения работы
(команды login, logout, passwd, exit, shutdown, Ctrl+Alt+Del, Alt+Fn).
Linux — система многопользовательская, а потому пользователь — ключевое понятие для
организации всей системы доступа в Linux. Когда пользователь регистрируется в системе (вводя
системное имя и пароль), он идентифицируется с учётной записью, в которой система хранит
информацию о каждом пользователе: его системное имя и некоторые другие сведения, необходимые
для работы с ним. Именно с учётными записями работает система.
В системе не могут быть зарегистрированы два пользователя имеющие одинаковые имена. Имя
пользователя в GNU/Linux может содержать разнообразные символы, однако в целях исключения
возможных конфликтных ситуаций с программным обеспечением и из соображений совместимости с
другими системами рекомендуется придерживаться следующих правил:
•
использовать буквы английского алфавита, цифры и символ подчеркиваний
•
избегать использования символа пробела
•
запрещено использовать символ двоеточия
•
следует избегать метасимволом(@,#,$ и т. д.)
•
не использовать специальные символы, например, символ табуляции
В ходе регистрации пользователя используются несколько программ. Самая важная из них —
демон init. Одна из его задач заключается в порождение процесса, обобщенно называемого getty, на
каждом термильном порте, который определен в файле /etc/inittab. Процесс getty устанавливает
начальные характеристики порта и выводит на экран приглашение к регистрации.
Последовательность действий при регистрации такая:
1. Демон getty отображает содержимое файла /etc/issue, а также приглашение к регистрации
2. Пользователь вводит регистрационное имя в строке приглашения
3. Демон getty запускает программу login, передавая ей в качестве аргумента введенное имя
4. Программа login запрашивает пароль и сверяет его с записями в файле /etc/shadow
5. Программа login выводи на экран «сообщение дня», хранящаяся в файле /etc/motd и запускает
интерпретатор команд
6. Интерпретатор выполняет соответствующие сценарии конфигурации
7. Интерпретатор отображает на экране приглашение командной строки и переходит в режим
ожидания команд.
Когда пользователь выходит из системы, управление передается демону init, который пробуждается
и порождает заново процесс getty.
В UNIX пользователи должны себя идентифицировать при входе, что состоит из двух шагов:
 логин - имя, по которому пользователя идентифицирует система
 пароль - секретное слово для открытия счета
Стоит отметить, что в консольном режиме пароль при вводе не отображается. При вводе
неправильного пароля появляется сообщение: Login incorrect.
Рис 1. Неверный пароль
После успешной регистрации в системе появляется приглашение командной строки. В приглашении
содержатся входное имя и имя хоста - соответственно. Заканчивается приглашение символом "$".
Рис 2. Вход в систему
Команды входа в систему и завершения работы
Команда login
Команда login. Является внешней командой, при её вызове интерпретатор вызывает команду
/bin/login.
Синтаксис:
login [-p] [-h хост] [имя пользователя] [ПЕРЕМЕННАЯ_СРЕДЫ=ЗНАЧЕНИЕ]
login [-p] [-h хост] -f имя пользователя
login [-p] -r хост
Описание.
Программа login — используется для создания новой сессии в системе. Она обычно вызывается
автоматически в ответ на ввод логина пользователем в терминале. Login может быть оболочкой и не
вызываться как дочерний процесс. Когда login вызывается в качестве оболочки он должен быть
выполнен как exec login, потому что это заставит выйти пользователя из текущей оболочки.
Параметры:
-f
не выполнять аутентификацию, пользователь уже прошел проверку
-h
имя удаленного хоста на который нужно зайти
-p
сохранять среду
-r
выполнить протокол autologin для rlogin
Команда logout и exit
Команда logout — является внутренней командой оболочки bash, которая завершает сценарий
работы пользователя в системе. Аналогично работает команда exit
Выйти из сеанса можно и с помощью комбинации клавиш Ctrl+D. Нажатие комбинации клавиш
Ctrl+D к закрытию текущего входного потока данных.
Команда passwd
passwd - изменяет пароль пользователя
Синтаксис: passwd [параметры] [LOGIN]
Описание:
Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь
может изменить пароль только своей учётной записи, суперпользователь может изменить пароль
любой учётной записи. Программа passwd также изменяет информацию об учётной записи: полное
имя пользователя, регистрационную оболочку командной строки или дату устаревания пароля и
интервал. Команда запрашивает у обычных пользователей старый пароль (если он был), а затем
дважды запрашивает новый. После первого запроса проверяется, достаточен ли "возраст" старого
пароля. Возраст - это промежуток времени, который должен пройти между сменами пароля. Если
возраст недостаточен, новый пароль отвергается и passwd завершается. Если возраст достаточен,
делается проверка на соответствие нового пароля техническим требованиям. Когда новый пароль
вводится во второй раз, две копии нового пароля сравниваются. Если они не совпали, цикл запроса
нового пароля повторяется, но не более двух раз.
Параметры
-a, --all
Этот параметр можно использовать только вместе с -S для вывода
статуса всех пользователей.
Рис. 3 Выполнение команды passwd –a -S
-d, --delete
Удаление пароля пользователя (пароль станет пустым). Этот параметр делает указанную
учётную запись беспарольной.
Выполнение: Удалим пароль учётной записи oleg. Если это делать из учётной записи oleg, то нам
будет выведено следующее сообщение:
Рис 4. Удаление пароля пользователем.
Поэтому следует отметить, что удаление паролей пользователей возможно выполнять лишь
только под учётной записью root. Заходим в режим суперпользователя и проделываем операцию по
удалению пароля пользователя oleg:
Рис 5. Удаление пароля суперпользователем
При следующем входе в систему под учётной записью ввод пароля требоваться не будет:
Рис 6. Вход после удаления пароля
-e, --expire
Немедленно сделать пароль устаревшим. В результате это заставит пользователя изменить
пароль при следующем входе в систему.
-h, --help
Показать краткую справку.
-i, --inactive ЧИСЛО
Этот параметр используется для блокировки учётной записи по прошествии заданного числа
дней после устаревания пароля. То есть, если пароль устарел и прошло дней больше, чем ЧИСЛО, то
пользователь больше не сможет использовать данную учётную запись.
-k, --keep-tokens
Указывает, что изменение пароля нужно выполнить только для устаревших ключей
аутентификации (паролей).
-l, --lock
Блокирует пользователя. Эта опция отключает пароль, изменяя его на значение, которое не
может быть получено при шифровании.
-n, --mindays ЧИСЛО
Задать минимальное количество дней между сменой пароля.
-q, --quiet
Не выводить сообщений при работе.
-r, --repository СТРОКА
Изменить пароль в репозитории СТРОКА.
-u, --unlock
Разблокирует уч. запись пользователя. Возвращает предыдущее значение пароля.
-w, --warndays ЧИСЛО
Установить число дней выдачи предупреждения, перед тем как потребуется смена пароля. В
параметре ЧИСЛО указывается число дней перед тем как пароль устареет, в течении которых
пользователю будут напоминать, что пароль скоро устареет.
-x, --maxdays ЧИСЛО
Установить максимальное количество дней, в течении которых пароль остаётся рабочим.
После ЧИСЛО дней пароль нужно изменить.
-S, --status
Отображает информацию о статусах пользователей. Информация о статусе состоит из 7
полей. Первое поле — это имя пользователя. Второе поле содержит идентификатор пароля
пользователя. Если пользователь заблокирован — L, если пользователь не имеет пароля — NP, и
если пароль есть, и он возможен для использования — P. Третье поле — дата последнего
изменения пароля. Следующие 4 поля содержат сроки использования аккаунта, период когда начать
предупреждать пользователя об устаревании пароля, и сроки действия пароля.
Выполним несколько команд и проверим статус пользователя при помощи опции –S.
Рис 7. Выполнение passwd с различными параметрами
Видно что пользователь заблокирован, срок действия аккаунта 44 дня, об устаревании
пользователь будет предупрежден за 7 дней. И если после устаревания пароля пройдет более 3 дней,
то учетная запись блокируется.
Выполним также команду passwd без параметров для смены пароля пользователя.
Рис 8. Passwd без параметров
Правила построения паролей
При создании паролей необходимо выполнять следующие требования:
 Пароль должен содержать не менее PASSLENGTH символов, как определено в файле
/etc/default/passwd. Значение PASSLENGTH должно быть не менее 3.
 Учитываются только первые восемь символов пароля.
 Пароль должен содержать не менее двух буквенных символов и одной цифры или
специального символа. В данном случае к буквенным символам относятся все прописные и
строчные буквы.
 Пароль должен отличаться от регистрационного имени пользователя и от любого слова,
получаемого циклическим или обратным сдвигом этого регистрационного имени.
Команда shutdown
shutdown - завершение работы системы перед выключением компьютера\
Синтаксис
shutdown <options> <time> <warning-massage>
Из опций программы shutdown наиболее часто используются две:
 -h — полная остановка системы (компьютер будет выключен);
 -r — перезагрузить систему.
Параметр time указывает время, когда должна быть выполнена команда (не обязательно
выполнять ее немедленно). Время можно указать в форме задержки от текущего момента в минутах.
Команда reboot также завершает работающие процессы сигналом SIGTERM (15), но команда
shutdown позволяет работающим сервисам самостоятельно завершить работу с помощью
прилагаемых init скриптов. Это позволяет корректно завершить работу, почистить кэш и выполнить
какие либо промежуточные действия.
Параметры:
-k Не выключать питание. Только отправить всем предупреждение.
-r Перезагрузить систему
-h Выключить питание
-P Остановить выключение питания.
-H Модифицирует -h флаг.
-c Отменить ожидание.
time когда выключить
warning message
сообщение отправляется пользователям.
Выполенние: если нужно выключить компьютер через 2 минуты, то можно прописать shutdown –r 2
Рис 9. Shutdown –r 2
Комбинация клавиш Ctrl+Alt+Fn
Данная комбинация клавиш переключает на n-ый консольный терминал (n=1..6). Если n>7, то
производится переключение графический терминал.
Комбинация клавиш Ctrl+Alt+Del
Данная комбинация перезагружает систему.
Рис 10. Результат нажатия Ctrl+Alt+Del
2. Основные информационные команды.
Научиться пользоваться диалоговым руководством man, ознакомиться с файлами HOW-TO в
каталоге /usr/doc/HOW-TO (при их наличии ).
2.1 Диалоговое руководство man
Практически любая UNIX система имеет "Руководство" man (“manual pages”'). Эта команда
man содержит документацию на различные команды системы, ресурсы, конфигурационные файлы.
Система man не рассчитана на обучение, она предоставляет подробное описание команд и
конфигурационных файлов.
Для получение помощи необходимо вызвать команду man с аргументом — именем команды
или иного требуемого объекта.
Синтаксис:
man [-acdfFhkKtwW] [--path] [-m система ] [-p строка ] [-C файл_конфигурации ] [-M
список_путей ] [-P пейджер ] [-S список_разделов ] [раздел] имя ...
Опций:
 -C файл_конфигурации - указание файл конфигурации для использования; по умолчанию это
/etc/man.conf.











-M путь - определяет список каталогов для поиска страниц руководства. Каталоги
разделяются двоеточиями. Пустой список каталогов равнозначен неупотреблению -M вовсе.
-P пейджер - назначить используемый пейджер. Это опция переназначает переменную
окружения MANPAGER, которая в свою очередь переназначает переменную PAGER. По
умолчанию, man использует /usr/bin/less -isR.
-S список_разделов - список разделов руководства разделённых двоеточиями, в которых
осуществляется поиск. Эта опция переопределяет переменную окружения MANSECT.
-a - по умолчанию после вывода первой найденной страницы руководства, man завершит
работу. Применение это опции вынудит man показать не только первую, а все страницы
справочника подходящие под заданное имя.
-c - переформатировать исходную страницу руководства, даже если существует актуальная
отформатированная страница. Это может понадобиться, если раньше страница была
отформатирована для экрана с другим количеством колонок, или повреждена.
-d - в действительности не показывает страницы справочника, но печатает отладочную
информацию как при осуществлении вывода страниц.
-D - показывает и страницу, и отладочную информацию.
-F - форматирование без отображения.
-h - выводит справку по опциям командной строки и завершает работу.
-K - поиск заданной строки во всех страницах справочника.
-m system - задание для поиска альтернативный набор страниц справочника, находящийся на
системе с указанным именем.
Выполнение: необходимо получить информацию о команде passwd. Для этого вводим “man
passwd” и на экране будут выведены страницы руководства.
Рис. 1 Результат выполнения команды “man passwd”
Нужно учесть что, не на все команды есть руководство. Некоторые страницы руководства еще
просто не написаны.
Сама по себе комаyда man не занимается отображение страниц помощи на экран. Она находит
среди всех страниц помощи нужную, форматирует её и передает программе постраничного
просмотра. Обычно в GNU/Linux используется less.
Управление командой less:
Команда
Действие
<Ctrl>+<N>,<Down Arrow> Следующая строка
<Ctrl>+<P>,<Up Arrow>
Предыдущая строка
<Ctrl>+<V>,<PgDn>
Страница вниз
<Alt>+<V>,<PgUp>
Страница вверх
<Space>
Следующая страница
</>строка
Поиск подстроки вниз
<?>строка
Поиск подстроки вверх
<n>
Найти следующее вхождение искомой подстроки
<q>
Выход
В Linux имеется множество файлов и команд с одинаковыми именами. Что бы можно было
получить именно то, что требуется пользователю, в систему man ввели разделение по секция, что
позволяет не путать, к примеру /etc/passwd и /bin/passwd.
Описание секций:
Секция
Информация
1
Описание команд пользователя
2
Описание системных вызовов
3
Описание библиотек
4
Информация о файлах устройств и иных специальных файлах
5
Форматы конфигурационных файлов
6
Помощь по играм
7
Макросы, кодировки, информация для программистов
8
Команды системного администрирования
9
Процедуры и функции ядра
Выполнение: вызов команды man с указанием секции 5 для passwd.
Рис 2. Результат команды man 5 passwd
Справочная страница содержит следующие типовые разделы:
NAME
Имя команды (или объекта, для которого вызвана справка)
SYNOPSIS
Синтаксис вызова с перечнем допустимых опций
DESCRIPTION
Подробное описание команды
OPTIONS
Перечень и описание допустимых опций
ENVIRONMENT
Аспекты взаимодействия со средой, окружением
SEE ALSO
Ссылки на смежные страницы
AUTHORS
Сведения об авторах программы
BUGS
Известные проблемы и обнаруженные ошибки
Пути поиска страниц руководства
Для поиска страниц руководства, man использует составной метод, основанный на опциях
вызова и переменных окружения, файле настроек /etc/man.conf, а также некоторых встроенных
соглашениях и эвристике. Прежде всего, если имя аргумента передаваемого man содержит
наклонную черту (/), man принимает его как указание на файл, и не осуществляет поиск. Однако в
обычном случае, где имя не включает наклонной черты, man ищет в ряде каталогов файл,
содержащий страницы руководства для указанной темы.
Cписок путей - это разделённый двоеточиями список каталогов, в которых man осуществит
поиск, список можно задать опцией -М. Если её не указать, но установить переменную окружения
MANPATH, man использует значение переменной как список каталогов для поиска. По-умолчанию
man осуществит поиск по своему списку путей, основанному на содержании файла конфигурации
/etc/man.conf. Каталоги, заявленные в переменной MANPATH в конфигурационном файле,
включаются в пути поиска.
Выполнение: с помощью команды manpath определим пути поиска страниц руководства.
Рис 3. Пути поиска страниц
Гипертекстовая справочная система info.
Организация справочной системы info — иерархическая, вся документация сведена в единое
дерево, в котором документы (так называемые ноды) являются узлами. Текст каждой ноды может
содержать гиперссылки на другие ноды.
Выполнение: вызовем команды info для команды shutdown, прописав info man.
Рис 4. Результат выполнения команды info man
На рисунке 11 видно, что командой info была вызвана страница из набора manpages. На
верхней строке отмечено название узла иерархического дерева (node) shutdown.
Команды apropos, whatis
apropos, whatis - поиск в базе данных по ключевому слову. Эти команды имеют следующий
синтаксис:
apropos ключевое слово
whatis ключевое слово
Команда аpropos ищет установленные в файлах базы данных краткие описания системных
команд по ключевому слову и выводит результат на стандартный вывод. Whatis показывает описание
только для полного имени команды.
Выполнение: с помощью команды apropos найдем описание команды по слову passwd.
.
Рис 5. Результат команды apropos passwd
Произведем аналогичный поиск, но уже по полному названию команды при помощи whatis.
Рис 6. Результат команды whatis passwd
2.2 Файлы HOW-TO
Значительное количество информации находится в уже установленной системе (при
инсталляции по умолчанию) в виде так называемых страниц man, info и howto. Страницы howto - это
небольшие текстовые файлы, в которых описана последовательность действий для выполнения
конкретной задачи (например настройки модема или сетевой платы). В разных дистрибутивах howto
располагаются в разных местах: /usr/doc, /usr/local/doc или /usr/share/doc. Однако эти файлы в
последних версиях некоторых дистрибутивов отсутствуют.
Рис 7. Пример файла HOWTO. file:///usr/share/doc/python-twisted-names/howto/names.html
3. Управление бюджетами пользователей.
В режиме суперпользователя выполнить команды who, id, logname, finger.
Создать новый бюджет командой adduser. Ознакомиться с файлами паролей /etc/passwd,
/etc/shadow, составом домашних каталогов и профилей пользователей /etc/skel/profile.
В операционной системе Linux существуют три типа пользователей:
- пользователь root
- системные (фиктивные) пользователи
- обычные пользователи
Каждому пользователю кроме имени присваивается числовой идентификатор пользователя
(UID, User IDentificator). Пользователь root имеет UID равный 0. Системные пользователи имеют
идентификаторы от 1 до 499. Обычные пользователи имеют UID от 500. Для удобства управления
доступом пользователей к файлам системы пользователи объединяются в группы. Каждый
пользователь входит хотя бы в одну группу. Группе присваивается числовой идентификатор группы
(GID - Group IDentificator). Когда пользователь регистрируется в системе (проходит процедуру
авторизации, например, вводя системное имя и пароль), он идентифицируется с учётной записью, в
которой система хранит информацию о каждом пользователе.
Информация о пользователях хранится в файлах:
Файл
Описание
/etc/passwd пользователи
/etc/group
группы пользователей
/etc/shadow зашифрованные пароли пользователей
/etc/gshadow зашифрованные пароли групп
3.1 Ознакомиться с файлами паролей /etc/passwd, /etc/shadow, составом домашних каталогов и
профилей пользователей /etc/skel/profile.
Перед тем как выполнять команды who, if, logname и finger, а также перед созданием нового
бюджета пользователя, ознакомимся с файлами etc/passwd, /etc/shadow, составом домашних
каталогов и профилей пользователей /etc/skel/profile.
etc/passwd
Существует несколько способов добавить пользователей в систему. Каждый из методов
изменяет содержимое файла паролей /etc/passwd. Файл /etc/passwd содержит список пользователей,
которые известны системе. В процессе регистрации пользователя система обращается к этому файлу
в поисках идентификатора пользователя и его домашнего каталога. Каждая строка файла описывает
одного пользователя. Формат файла /etc/passwd практически един для всех диалектов Unix. Этот
файл содержит строки следующего вида, разделенные двоеточием:
username:password:UID:GID: full_name:home_dir:login_shell
username - имя пользователя
password - пароль
uid - уникальный идентификатор пользователя в пределах системы
gid - уникальный идентификатор группы в пределах системы, к которой принадлежит пользователь
uid comments - комментарий, расширенное описание пользователя, например, ФИО
home directory - домашний каталог пользователя
login_shell - имя программы - интерпретатора команд пользователя
Имя пользователя (username)— регистрационное имя пользователя, то есть логин.
Поле пароля может быть представлено различным образом. Оно может быть пустым или
содержать до 13 символов зашифрованной версии пароля.
Идентификатор пользователя (User ID) — индивидуальный числовой идентификатор
пользователя (UID). Система обычно работает с UID, а не с именами пользователей. Идентификатор
задается из диапазона 0…65534 и должен быть уникальным. Число 0 соответствует пользователю
root.
Идентификатор группы (Group ID) — числовой идентификатор первичной группы
пользователя (GID). Идентификатор группы 0 соответствует группе root.
Реальное имя пользователя (full name) — обычно представляет собой реальное (фактическое)
имя пользователя, например. Может содержать и другие данные: номер телефона и т.п. Эти сведения
используются в информационных целях.
Домашний каталог пользователя (home dir) — в качестве домашнего каталога обычно
используется каталог /home/<имя_пользователя>
Оболочка пользователя (login shell) — командный интерпретатор пользователя, который
используется им по умолчанию. Программа-оболочка (командный интерпретатор) запускается при
входе пользователя в систему. Примеры командных интерпретаторов: ash, bash, csh, fcsh, ksh.
Часть содержимого /etc/passwd приведена ниже.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
messagebus:x:102:105::/var/run/dbus:/bin/false
avahi-autoipd:x:103:108:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:104:109:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
couchdb:x:105:113:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
usbmux:x:106:46:usbmux daemon,,,:/home/usbmux:/bin/false
speech-dispatcher:x:107:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
kernoops:x:108:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:109:114:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:110:117:RealtimeKit,,,:/proc:/bin/false
saned:x:111:118::/home/saned:/bin/false
hplip:x:112:7:HPLIP system user,,,:/var/run/hplip:/bin/false
gdm:x:113:120:Gnome Display Manager:/var/lib/gdm:/bin/false
oleg:x:1000:1000:Олег,,,:/home/oleg:/bin/bash
В первой записи указана учетная запись пользователя root. Как видно, идентификатор
пользователя и идентификатор группы пользователя для данной учетной записи совпадают и равны
нулю. Затем следует поле персональных данных, домашний каталог, которым является каталог
/root и командный интерпретатор пользователя - /bin/bash. Для пользователя oleg UID=1000,
GID=1000, указанно реальное имя пользователя – Олег, домашний каталог - /home/oleg/ и
используемый интерпретатор используемый по умолчанию /bin/bash.
Обычно вместо паролей ставится символ “x”, а пароли хранятся отдельно в файле /etc/shadow, в
зашифрованном виде и некоторая дополнительная информация о паролях.
/etc/shadow
Файл /etc/shadow доступен для чтения только пользователю root и предназначен для хранения
зашифрованных паролей. В нем также содержится учетная информация, которая отсутствует в файле
/etc/passwd. При использовании скрытых паролей соответствующие поля в файле /etc/passwd всегда
содержат символ «х». Оба файла необходимо сопровождать независимо друг от друга (или
использовать команду useradd для автоматического управления файлами). Как и /etc/passwd, файл
/etc/shadow содержит одну строку для каждого пользователя. Каждая строка состоит из 9 полей,
разделенных двоеточиями:
 имя пользователя;
 зашифрованный пароль;
 количество дней, прошедших с 1.01.1970 до последней смены пароля;
 число дней до смены пароля (0 - может быть сменен всегда);
 число дней, после которых пароль долже быть сменен (99999 - может не меняться вообще
никогда)
 число дней, в течение которых пользователь получает предупреждения о необходимости
пароль сменить;
 число дней после окончания действия пароля, когда еще можно работать, после данного срока
аккаун будет заблокирован;
 число дней, начиная с 1.01.1970, после которых пароль будет заблокирован;
 зарезервировано
Часть /etc/shadow:
root:$6$CcGqJ0xU$iWrDpHYkP7KMT0Xk6idGCNnaGgUhz85YSvWsi75OItA3gQOLpY7VoxFKqV2PUSOgV5dg.zSLGf6Hu489swyQq0
:15871:0:99999:7:::
daemon:*:14889:0:99999:7:::
bin:*:14889:0:99999:7:::
sys:*:14889:0:99999:7:::
sync:*:14889:0:99999:7:::
games:*:14889:0:99999:7:::
man:*:14889:0:99999:7:::
lp:*:14889:0:99999:7:::
…
saned:*:14889:0:99999:7:::
hplip:*:14889:0:99999:7:::
gdm:*:14889:0:99999:7:::
oleg:$6$PDFVhI3B$MD/occp9DKUnYTu.bX4rxvG030nUJbIBLmS.PQywZomgPx446l0GAPAtEyaiNou9F7oGzvYsrXRG6O2CnESEV/:1
5871:8:44:7:3::
У пользователей root и oleg в поле зашифрованный пароль находится последовательность
различных символов. Это и есть зашифрованный пароль. Пароль шифруется при помощи алгоритма
SHA-512, об этом говорит префикс $6$. Другие префиксы обозначают другие алгоритмы
шифрования: $-DES; $1$-MD5; $2a$-BlowFish и др.
Состав домашнего каталога пользователя
/home - В этом каталоге размещены домашние каталоги пользователей. Linux является
многопользовательской системой и каждому пользователю присваивается имя и уникальный каталог
для персональных файлов. Файлы всех пользователей в Linux хранятся раздельно, у каждого
пользователя есть собственный домашний каталог, в котором он может хранить свои данные.
Информация о домашнем каталоге обязательно должна присутствовать в учётной записи, потому что
именно с него начинает работу пользователь, зарегистрировавшийся в системе.
Домашний каталог содержит все пользовательские файлы : настройки, файлы конфигурации
программ, документы, данные, кэш браузера, почту, и т.д. Пользователь может создать подкаталоги
в своем домашнем каталоге, организованные по своему усмотрению. Другие пользователи не могут
читать эти файлы или писать в этот домашний каталог без разрешения пользователя.
Профиль пользователей /etc/skel/profile
Когда создается домашний каталог для нового пользователя, он инициализируется файлами из
каталога /etc/skel. Администратор системы может создавать файлы в /etc/skel , которые будут
обеспечивать хорошую заданную по умолчанию среду для пользователей.
3.2 В режиме суперпользователя выполнить команды who, id, logname, finger.
В качестве привилегированного пользователя мы можем управлять процессом регистрации
пользователей в системе, в частности вводить и удалять бюджеты пользователей, а также группы.
Бюджет пользователя (user account) - это некоторая информация о пользователе, которая позволяет
ему работать в системе. Обычно это имя, пароль, группа, к которой принадлежит пользователь,
идентификаторы пользователя и группы и т.д. Кроме того, привилегированный пользователь имеет
доступ к системным файлам инициализации, позволяющим конфигурировать все пользовательские
shell, и осуществляет контроль над стандартными файлами инициализации, которые копируются в
бюджет при его создании. С их помощью можно выполнять начальную конфигурацию бюджетов
пользователей.
Команда who
Команда who сообщает о том, какие пользователи в настоящий момент работают в системе.
Синтаксис: who [ОПЦИИ]... [ФАЙЛ]
Если не указаны никакие опции, выводит листинг со следующей информацией о каждом
пользователе, вошедшем в настоящее время в систему:
•
имя
•
терминал
•
время регистрации
•
имя дистанционного (удалённого) узла (localhost - для локально или X-дисплей)
Опции:
 -b, --boot - время последней загрузки системы
 -d, --dead - выводит спящие процессы
 -H, --heading - выводит строку заголовка (шапку) для столбцов таблицы листинга
 -i, --idle - в листинге, после времени входа в систему, указывает количество часов:минут
бездействия пользователя в его терминале. Точка (.) в этом поле означает, что пользователь
был активен в течение последней минуты, а слово old (старый) - бездействовал более суток
(опция -u).
 -l, --login - выводит системные процессы, ожидающие регистрации пользователей
 --lookup - пытается узаконить имена узлов, найденные через DNS
 -m - выводит информацию о пользователе, связанном с текущим терминалом - синоним
команды whoami.
 -p, --process - выводит активные процессы, порожденные программой init
 -q, --count - выводит только имена и количество зарегистрировавшихся пользователей
 -r, --runlevel - выводит информацию о текущем уровне выполнения для пользователя
 -s, --short - выводит только имя, терминал, время регистрации, имя дистанционного
(удалённого) узла (по умолчанию)
 -t, --time - если есть, то выводит информацию о последнем изменении времени в системе.
 -a, --all - эквивалент -b -d --login -p -r -t -T –u
 -T, -w, --mesg добавлять статус приема сообщений как +, - или ?

-u, --users
перечислить подключенных пользователей
Выполнение: воспользуемся командой who без указания опций для вывода пользователей
работающих в системе в данный момент.
Рис 1. Результат выполнения команды who без указания опций.
Воспользуемся командой who указав опцию –b для вывода информации о времени последней
загрузки системы.
.
Рис 2. Время последней загрузки системы
Как правило, команда who получает свои входные данные из файла /var/run/utmp. Аргумент
ФАЙЛ может задать другой файл с данными, например, /var/log/wtmp с информацией о
завершенных сессиях результат выполнения команды who с аргументом /var/log/wtmp :
oleg@home-oleg:~$ who /var/log/wtmp
oleg tty1 2013-06-15 12:13
oleg tty1 2013-06-15 12:13
oleg tty1 2013-06-15 12:16
oleg tty1 2013-06-15 12:16
oleg tty1 2013-06-15 12:17
oleg tty1 2013-06-15 12:17
oleg tty7 2013-06-15 12:20 (:0)
oleg tty1 2013-06-15 12:24
oleg tty1 2013-06-15 12:24
root tty1 2013-06-15 12:24
root tty1 2013-06-15 12:24
oleg tty2 2013-06-15 12:26
oleg tty2 2013-06-15 12:26
oleg tty2 2013-06-15 12:28
oleg tty2 2013-06-15 12:28
root tty1 2013-06-15 12:39
root tty1 2013-06-15 12:39
oleg tty2 2013-06-15 12:39
oleg tty2 2013-06-15 12:39
root tty1 2013-06-15 13:03
root tty1 2013-06-15 13:03
oleg tty2 2013-06-15 13:03
oleg tty2 2013-06-15 13:03
oleg tty7 2013-06-15 13:07 (:0)
oleg pts/0 2013-06-15 13:57 (:0.0)
oleg tty2 2013-06-15 14:12
oleg tty2 2013-06-15 14:12
Или /var/log/btmp, содержащий информацию о неудачных попытках входа в систему:
oleg@home-oleg:~$ who /var/log/btmp
oleg tty1 2013-06-15 12:13
oleg tty1 2013-06-15 12:14
root tty1 2013-06-15 12:19
root tty1 2013-06-15 12:19
root tty1 2013-06-15 12:20
Команда id
Команда id - выводит подлинные и действующие UIDы и GIDы
Синтаксис:
id [OPTION]... [USERNAME]
Эта команда выводит информацию об указанном пользователе USERNAME или текущем
пользователе, который запустил данную команду и не указал явно имя пользователя. По умолчанию
выводятся подлинные числовые идентификаторы пользователя (UID) и группы (GID), действующие
(именные) идентификаторы пользователей и групп, а также идентификаторы других групп, в
которых состоит пользователь.
UID однозначно идентифицирует учетную запись пользователя в Linux. Используется для
персонального учета действий пользователя и определения прав доступа к другим объектам
системы.
Опции команды:
 -g, --group - выводит только подлинный числовой идентификатор группы
 -G, --groups - выводит все подлинные числовые идентификаторы групп, в которых состоит
пользователь
 -n, --name - выводит действующие имена пользователей или групп.
 -r, --real - выводит подлинные числовые идентификаторы пользователей или групп.
 -u, --user - выводит только подлинный числовой идентификатор пользователя.
 --help - выводит помощь по этой команде и завершает работу
 --version - выводит информацию о версии команды и завершает работу
Выполнение: с помощью команды id получим информацию об UID и GID для пользователя oleg и
пользователя root. Для этого набираем id oleg и id root.
Рис 3. Результат выполнения команд id
Команда logname
Команда logname выводит имя текущего пользователя. Для нахождения имени используется
файл /var/run/utmp. Если в этом файле отсутствует элемент для вызвавшего процесса, выводится
сообщение об ошибке и программа завершается с кодом 1.
Синтаксис:
logname [OPTION]
Опции:
 --help - выводит описание опций программы и завершает её работу
 --version - выводит информацию о версии программы и завершает её работу
Воспользуемся командой logname для вывода имени текущего пользователя.
Рис 4. Результат выполнения команды logname
Команда finger
Команда finger возвращает информацию о пользователях, зарегистрированных в системе:
системный идентификатор, полное имя, терминал, время работы и номер телефона. Кроме того,
finger отображает информацию о пользовательском интерпретаторе командной строки, а также
выводит содержимое файлов .plan и .project, находящихся в домашнем каталоге пользователя.
Информация может выводиться в длинном и коротком форматах. Команда finger может производить
поиск не только по системному идентификатору пользователя, но также и по его имени или
фамилии. Команда finger без аргументов выводит список работающих в данный момент
пользователей.
Синтаксис: finger [-lmsp] [пользователь ...] [пользователь@система''...]
Опции:
- s - вывести системное имя пользователя, реальное имя, имя терминала и статус записи (как
символ ``*'' перед именем терминала, если доступ на запись закрыт), время простоя, время
регистрации в системе и либо рабочий адрес и телефон, либо имя удалённой системы.
Время регистрации отображается в виде названия дня недели, если с момента регистрации
прошло меньше 6 дней, иначе в виде месяца и дня; часов и минут, если прошло меньше 6 месяцев, в
противном случае вместо часов и минут выводится год. Неизвестные устройства, так же как и
несуществующие значения времени простоя и регистрации, отображаются в виде одиночной
звёздочки.
-l - Производит многострочный вывод, отображающий всю информацию, описанную для опции s, а также о домашнем каталоге пользователя, домашнем номере телефона, командной оболочке,
наличии почты, и содержании файлов .forward, .plan, .project и .pubkey из домашнего каталога
пользователя.
-p - При использовании опции -l предотвращает помещение в вывод finger содержимого файлов
.forward, .plan, .project и .pubkey.
-m - Предотвращает поиск по имени. Обычно пользователь является именем пользователя в
системе, однако поиск также будет произведён и по реальному имени пользователя, если не указана
опция -m. Поиск по имени, производимый утилитой finger, является регистронезависимым. Если не
указано никаких опций, finger использует стиль вывода опции -l в случае наличия операндов, и
стиль опции -s в противном случае.
Если не указано никаких аргументов, finger выведет информацию по каждому пользователю,
зарегистрированному в системе на текущий момент. Утилита finger может использоваться для
поиска пользователей на удалённой машине. Аргумент пользователь в этом случае указывается в
виде ``пользователь@система'', или ``@система'', при этом формат вывода по умолчанию в первом
случае будет в стиле опции -l, а во втором случае - в стиле -s.
В необязательном файле конфигурации finger.conf могут быть указаны псевдонимы.
Поскольку finger вызывается из fingerd, псевдонимы будут работать как для локальных запросов,
так и для сетевых.
К сожалению, имеющийся дистрибутив Ubuntu не имеет предустановленную утилиту finger.
Рис 5. Попытка установить утилиту Finger
3.3 Создать новый бюджет командой adduser
Добавить учетную запись пользователя можно при помощи утилиты adduser.
Выполнение: Создадим с помощью adduser обычного пользователя. Вводим в командной
строке от имени суперпользователя: adduser os. Далее заполняем необходимую информацию в
интерактивном режиме
Рис 6. Процесс создания пользователя
В результате происходит добавление нового пользователя. Ему присваивается UID = 1001,
GID=1001, создается домашний каталог /home/user, создается пароль, добавляется другая
информация.
Рис 7. Результат создания нового пользователя user
Также можно произвести удаление учетной записи. Для этого нужно прописать userdel и имя
пользователя. При этом необходимо убедиться, что пользователь в этот момент не зарегистрирован в
системе и что нет процессов, запущенных от его имени. Необходимо помнить, что удаление учетной
записи происходит безвозвратно. Пропишем userdel –r user. Параметр –r указывает на
необходимость удалить домашний каталог и почтовый ящик.
Рис 8. Результат удаления пользователя user
4. Работа с файловой системой.
Ознакомиться с командами mount, umount, df, mkfs, fsck.
С помощью команды df ознакомиться с разделами винчестера.
Выполнить монтирование файловой системы на дискете. Изучить описание автоматически
монтируемых файловых систем в файле /etc/fstab.
"В системе UNIX, все есть файл; а если что-то не файл, то это процесс". Это утверждение верно,
т.к. существуют специальные файлы, которые больше, чем просто файлы (именованные каналы и
сокеты, например), но для простоты допускают обобщение и говорят, что все есть файл. Система
Linux не делает никакой разницы между файлом и каталогом, так как каталог - это просто файл,
содержащий имена других файлов. Программы, службы, тексты, изображения и т.д. — все это
файлы. В системе Linux устройства ввода и вывода и вообще все устройства считаются файлами.
Виды файлов
Большинство файлов просто файлы, называемые обычными файлами; они содержат обычные
данные, текстовые файлы, исполняемые файлы, файлы ввода или вывода программ и т.д.
Хотя предположение, что все, что мы обнаруживаем в системе Linux представляет собой файл
достаточно верное, есть некоторые особенности.
Существуют следующие виды файлов:

Каталоги. Каталоги - это файлы, в качестве данных которых выступают списки других
файлов и каталогов. Именно в данных каталога осуществляется связь имени файла
(словесного обозначения для людей) с его индексным дескриптором (истинным именемчислом). Отсюда следует, что один и тот же файл может существовать под разными именами
и/или в разных каталогах: все имена будут связаны с одним и тем же индексным
дескриптором (механизм жестких ссылок). Файлы всегда содержаться в каталогах, иначе
просто недоступны.

Обычные файлы. Сюда относятся все файлы с данными, играющими роль ценной
информации сами по себе.

Специальные файлы: механизм использования ввода-вывода. Большинство специальных
файлов находятся в /dev. Они используются для обозначения физических устройств
компьютера. Например, файл /dev/console - соответствующий консольному терминалу. Все,
что выводится в файл /dev/console, будет просто появляться на экране терминала. При
попытке чтения из файла /dev/console, вы будете получать то, что вводится с клавиатуры.
Специальные файлы бывают двух типов:
1) блочные - запись и чтение допускаются только блоками. Например, разделы дисков с
файловой системой являются таковыми.
2) Символьные (бесструктурные, сырые, row) - можно читать и писать отдельными байтами.
К ним относятся терминалы, неформатированные диски и разделы дисков без файловой
системы.
Понятия "размер" у специального файла не существует. Ведь этот файл обозначает физическое
устройство. Фактически, это ссылка на соответствующий драйвер. Вместо длины, команда ls
показывает для таких файлов два числа: "мажорный" и "минорный" номера устройств. Будем считать
для ясности, что "мажор" это порядковый номер драйвера устройства, а "минор" - внутренний номер
устройства в таблице обслуживающего его драйвера.



Ссылки: механизм обеспечения видимости файла или каталога во множестве частей
файлового дерева системы.
(Домены) сокеты: особый тип файла, подобный сокетам TCP/IP, обеспечивающий
взаимодействие в сети процессов, защищенных контролем файловой системы на доступ.
Именованные каналы: действуют более или менее похоже на сокеты и обеспечивают способ
коммуникации между процессами без использования правил поведения сетевых сокетов.
Разделы
Одной из целей разделения на разделы является повышение сохранности данных на случай
непредвиденных происшествий. Путем разделения жесткого диска на разделы, данные могут быть
сгруппированы и разобщены. Когда происходит авария, повреждаются данные только одного
раздела, а данные других разделов уцелеют.
Схемы и типы разделения
Есть два вида основных разделов в системе Linux:
 раздел с данными: обычные данные системы Linux, включая корневой раздел, содержащий все
данные для старта и запуска системы; и
 раздел подкачки: расширение физической памяти компьютера, представляет собой
дополнительную память на жестком диске.
Большинство систем содержат корневой раздел, один или несколько разделов с данными, и один
или несколько разделов подкачки. Системы в смешанных средах, могут содержать разделы данных
других систем, такие как разделы файловых системам FAT или VFAT с данными MS Windows.
Стандартный корневой раздел (обозначается одиночной косой чертой, /), составляет около 100-500
МБ и содержит системные конфигурационные файлы, большинство основных команд и серверные
программы, системные библиотеки, некоторое временное пространство и домашний каталог
пользователя с правами администратора.
Пространство для подкачки (обозначается как swap) доступно только для самой системы, и
скрыто из виду при обычной работе. Раздел подкачки - это механизм, который обеспечивает
продолжение работы, что бы ни случилось.
Во многих дистрибутивах ядро находится на отдельном разделе, поскольку это самый важный
файл системы. Если это так, можно увидеть, что у есть раздел /boot, содержащий ядро (ядра) и
сопутствующие файлы данных.
Остаток жесткого диска обычно делится на разделы данных, хотя может быть, что все не
критичные для системы данные будут находиться на одном разделе, например, при выполнении
стандартной установки рабочей станции. Разделы некритичных данных:
 раздел для пользовательских программ (/usr)
 раздел, содержащий персональные данные пользователей (/home)
 раздел для хранения временных данных, таких как очереди печати и почты (/var)
 раздел для дополнительного программного обеспечения (/opt)
Схема файловой системы
Для удобства файловая система Linux обычно представляется в виде древовидной структуры.
Рис 1. Древовидная структура файловой системы linux
В зависимости от системного администратора, операционной системы и назначения UNIXмашины, структура может меняться, и каталоги по желанию могут быть опущены или добавлены.
Дерево файловой системы начинается со слэша, обозначаемого наклоненной вперед косой чертой
(/). Это каталог, содержащий все основные каталоги и файлы, также называется корневой
директорией или "корнем" файловой системы.
Файловая система в реальности
Каждый раздел имеет свою собственную файловую систему. Представляя все эти файловые
системы вместе, мы можем говорить о древовидной структуре всей системы, но все не так просто. В
файловой системе, файл представлен с помощью inode (индексного дескриптора), своего рода
серийного номера, содержащего информацию о данных этого файла: кому принадлежит этот файл,
и где он находится на жестком диске.
Каждый раздел имеет свой собственный набор индексных дескрипторов; на всей системе с
несколькими разделами могут существовать файлы с одним и тем же номером индексного
дескриптора.
Каждый inode описывает структуру данных на жестком диске, хранит информацию о свойствах
файла, в том числе физическое местоположение его данных. Когда жесткий диск назначается для
хранения данных, в разделе создается определенное количество индексных дескрипторов. Это число
будет максимальным количеством файлов всех типов, которые могут существовать в одно и то же
время на данном разделе.
Во время создания нового файла, он получает свободный inode. В этом индексном дескрипторе
содержится следующая информация:
 Владельца и группа-владелец файла.
 Тип файла (обычный, каталог, ...)
 Разрешения на файл





Дата и время создания, последнего открытия и изменения.
Дата и время, когда эта информация была изменена в индексном дескрипторе.
Количество ссылок на этот файл.
Размер файла
Адрес, определяющий фактическое расположение данных файла.
Виртуальная файловая система /proc
В ОС Linux виртуальная файловая система /proc содержит файлы с текущей информацией о
процессах и системе в целом. Файловая система создается в оперативной памяти компьютера в
процессе загрузки и используется в качестве интерфейса обмена данными со структурами ядра.
Использование файлов /proc/* в большинстве случаев позволяет избавиться от необходимости
чтения и записи в устройство /dev/kmem. Большинство расположенных в структуре /proc файлов
доступны пользователям только для чтения, а для записи требуют полномочий root.
Для поддержки виртуальной файловой системы /proc при компиляции ядра должна быть
включена опция /proc file system support.
Файловая система /proc содержит множество каталогов с численными именами – эти каталоги
создаются для каждого запущенного в системе процесса. Имя каталога определяется
идентификатором (PID) соответствующего процесса.
Использование общепринятых имен основных файлов и структуры каталогов существенно
облегчает работу в операционной системе, ее администрирование и повышает переносимость. .
Команда mount
Данная команда монтирует файловую систему.
Монтирование — это подключение в один из каталогов целой файловой системы, находящейся
где-то на другом устройстве. Для монтирования необходим пустой каталог — он называется точкой
монтирования. Точкой монтирования может служить любой каталог.
Операция монтирования состоит из нескольких этапов:
1. Определение типа монтируемой системы
2. Проверка целостности монтируемой системы
3. Считывание системных структур данных и инициализация соответствующего модуля
файлового менеджера (драйвера файловой системы)
4. Установка флага, что система смонтирована. При корректном размонтировании этот флаг
сбрасывается, если при загрузке система определяет, что он не сброшен, значит работа
завершена некорректно и возможно ФС нуждается в починке.
5. Включение новой файловой системы в общее пространство имен.
Синтаксис команды mount:
mount [-lhV]
mount -a [-fFnrsvw] [-t тип_ФС] [-O список_параметров]
mount [-fnrsvw] [-o параметры [,...]] устройство | каталог
mount [-fnrsvw] [-t тип_ФС] [-o параметры] устройство каталог
Параметры
 -V - выводит информацию о версии программы.
 -h - выводит подсказку.
 -v - подробно информирует о выполняемых действиях.
 -a - монтирует все файловые системы указанного типа, описания которых содержатся в файле
/etc/fstab.
 -F - позволяет подключать файловые системы на различных устройствах или на серверах NFS
параллельно. Это благоприятно сказывается на производительности; также параллельно
обслуживаются тайм-ауты NFS.
 -f - пытается делать все возможное для выполнения системного вызова; если это невозможно,
тогда создаётся видимость успешного выполнения монтирования файловой системы. Этот
параметр полезен в сочетании с -v , чтобы отследить попытки, предпринимаемые командой
mount .

-l - к выводу информации добавляет описания файловых систем ext2, ext3 и XFS. Для работы
этого параметра, монтирование должно разрешать операцию чтения дискового устройства
(т.е. активизирован suid root).
 -n - монтирует без записи в /etc/mtab. Необходимость в этом возникает когда, например, /etc
находится на файловой системе с режимом доступа "только для чтения".
 -s - избегая аварийного завершения, допускает даже неподходящие параметры монтирования.
При этом параметры, не поддерживаемые файловой системой, будут проигнорированы.
 -r - монтирует файловую систему в режиме "только для чтения".
Операция монтирования предполагает присоединение дерева каталогов, находящегося на
устройстве памяти, к указанному пользователем каталогу. Лишь после этого можно перейти в
присоединенный каталог и обращаться к его файлам.
Выполнение:
1. Подключим флеш накопитель к компьютеру.
2. При подключении накопителя был создан файл устройства /dev/sdd1. Смонтируем его в
папку /home/oleg/flashusb. Для этого пропишем mount /dev/sdd1 /home/oleg/flashusb, предварительно
создав каталог flashusb. Чтобы проверить результат введем ls /home/oleg/flashusb.
Рис 2. Результат монтирования
Теперь флэш накопитель доступен для работы через указанную директорию. Это
демонстрируется выводом файлов с накопителя с помощью команды ls.
Команда umount
Команда umount отключает файловые системы от иерархического дерева каталогов. Файловая
система указывается или по имени каталога, к которому она была подключена, или по имени
специального устройства, на котором она размещена.
Следует отметить, что файловая система не может быть размонтирована, если в настоящий
момент она "занята" или используется, а именно: на ней есть открытые файлы, некоторые процессы
имеют там рабочие каталоги или на ней размещён файл подкачки (swap).
Синтаксис:
umount [-hV]
umount -a [-dflnrv] [-t тип_vfs] [-O параметры]
umount [-dflnrv] каталог | устройство [...]
Параметры:
 -V - вывести информацию о версии программы и завершить работу.
 -h - вывести справку о программе, её параметрах и завершить работу.
 -v - подробно комментирует происходящее.
 -n - размонтировать без регистрации событий в файле /etc/mtab.
 -r - если размонтирование выполнить не удалось, пытается перемонтировать файловую
системы в режим "только для чтения".
 -d - если размонтируемое устройство являлось петлевым (loop), тогда освобождает его.
 -t тип_vfs - требует выполнение действий лишь для файловых систем указанного типа
тип_vfs. Вообще тип_vfs является списком файловых систем, разделённых запятыми. Этот
список может начинаться с префикса no для указания файловых систем, на которые не
распространяются никакие действия.

-O параметры - действия будут выполнены лишь для тех файловых систем, для которых в
/etc/fstab указаны заданные параметры. Кортеж из нескольких параметров подряд может быть
указан через запятую. Этот список может содержать префикс no, что предпишет не выполнять
действий над файловой системой, имеющую в /etc/fstab заданный параметр.
Выполнение: размонтирование смонтированной ранее файловой системы на устройстве /dev/sdd1.
Для этого пропишем umounts /dev/sdd1 /home/oleg/flashusb и проверим результат командой ls
/home/oleg/flashusb.
Рис 3. Результат размонтирования
После данных операций видно, что каталог flashusb является пустым.
Команда df
Команда df выдаёт отчёт о доступном и использованном дисковом пространстве на файловых
системах. При запуске без аргументов df выдаёт отчёт по доступному и использованному
пространству для всех смонтированных файловых систем.
Рис 3. Результат команды df без аргументов
Синтаксис:
df [опции] [файл...]
Опции:
 -a, --all - включает в список файловых систем те, которые имеют размер в 0 блоков, и которые
по умолчанию опускаются. Такие файловые системы обычно являются псевдо-файловыми
системами специального назначения. Кроме того, только если задана эта опция, будут
показаны файловые системы типа "ignore" или "auto", которые поддерживаются некоторыми
операционными системами.
 -B, --block-size=size - выдаёт размеры в блоках размера байт.
 -h, --human-readable - добавляет к каждому размеру букву, например M для мегабайт
Выполнения команды df -h:
Рис 4. Результат выполнения команды df -h
 -H, --si - делает то же, что и опция -h, но использует официальные SI единицы измерения (где
для расчётов используется 1000 вместо 1024 и, таким образом, M~-- это 1000000, а не
1048576).
 -i, --inodes - вместо информации о блоках выдаётся информация об использовании inode'ов в
файловой системе. Inode содержит информацию о файле: владелец, права доступа, временные
штампы и местоположение на диске.
Выполнение команды df –i:
Рис 5. Результат выполнения команды df –i
 -k, --kilobytes - при выводе устанавливает размер блока в 1024 байт.
 -l, --local - выводит только данные о локальных файловых системах.
 -m, --megabytes - при выводе устанавливает размер блока в двоичный мегабайт (1048576
байт).
 -P, --portability - использовать формат вывода по стандарту POSIX. Он такой же, как формат
по умолчанию, только информация о каждой файловой системе всегда выводится на одной
строке; имя смонтированного устройства никогда не помещается на отдельную строку. Это
приводит к тому, что если длина имени смонтированного устройства больше, чем 20
символов, то колонки не выравниваются.
 -t тип-файловой-системы, --type=тип-файловой-системы - показывать только файловые
системы с указанным типом-файловой-системы. Можно задать несколько типов файловых
систем, если использовать несколько опций -t. По умолчанию никакие типы файловых
системы не опускаются.
 -T, --print-type – печатать тип файловой системы. Тип берётся от операционной системы (и
определяется системно-зависимым способом, например посредством чтения файла /etc/mtab).
Выполнение команды df –T –P:
Рис 6. Результат выполнения команды df –T -P
 -x тип-файловой-системы, --exclude-type=тип-файловой-системы - не показывать файловые
системы с заданным типом-файловой-системы. Можно задать несколько типов файловых
систем, если использовать несколько опций -x . По умолчанию никакие типы файловых
систем не опускаются.
Команда mkfs
mkfs создаёт новую файловую систему Linux.
Синтаксис:mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ]
Команда mkfs используется для создания файловой системы Linux на некотором устройстве, обычно
в разделе жёсткого диска. В качестве аргумента filesys для файловой системы может выступать или
название устройства (например, /dev/hda1, /dev/sdb2) или точка монтирования (например, /, /usr,
/home). Аргументом blocks указывается количество блоков, которые выделяются для использования
этой файловой системой. По окончании работы mkfs возвращает 0 - в случае успеха, а 1 - при
неудачной операции.
Параметры:
 -V - подробно информирует происходящее, включая все выполняемые специфические
команды файловой системы. Если указать этот параметр более одного раза, то это запретит
реальное выполнение любых специфических команд файловой системы. Использовать этот
параметр целесообразно во время тестирования.
 -t fstype - указывает тип создаваемой файловой системы. Если этот параметр не указан, тогда,
по умолчанию, принимается тип файловой системы ext2.
 fs-options - передаёт модулю создания специфической файловой системы параметры в виде
списка. Следует отметить, что нет гарантии в том, что следующие перечисленные параметры
будут поддерживаться большинством модулей создания файловых систем.



-c - перед созданием файловой системы проверяет наличие сбойных блоков на устройстве.
-l filename - считывает список сбойных блоков из указанного файла filename. Для составления
подобного списка, можно выполнить предварительную проверку, например, с помощью
программы badblocks.
-v - подробно комментирует происходящее.
Команда Fsck - команда UNIX, которая проверяет и устраняет ошибки в файловой системе. Fsck
используется для проверки файловых систем и для исправления ошибок файловой системы, если они
будут обнаружены. Основное требование при проверки файловой системы: файловая система
должна быть размонтирована. Запуск fsck для уже смонтированной файловой системы может
привести к ее разрушению. К счастью, при запуске fsck на смонтированной файловой системе,
программа выдаёт предупреждение.
Синтаксис: fsck [options] [filesystem]
filesys может быть именем устройства (например, /dev/sda7), точкой монтирования этого блочного
устройства (/, /mnt/sda7 и т. д.), меткой раздела или UUID-индексом. Обычно fsck параллельно
проверяет данные на разных физических дисках, чтобы сократить общее время, необходимое для
полной проверки всех дисков.
Если файловых систем не указано и не указана опция -A, то fsck по порядку проверит файловые
системы, указанные в /etc/fstab. Это эквивалентно опции -As.
Код, возвращаемый fsck, является суммой следующих условий:
 0 — нет ошибок
 1 — ошибки файловой системы исправлены
 2 — необходима перезагрузка системы
 4 — ошибки файловой системы не исправлены
 8 — в процессе проверки произошли ошибки
 16 — неверное использование команды либо синтаксическая ошибка
 32 — fsck была прервана пользователем
 128 — ошибка разделяемых объектов
Воспользуемся командой fsck /dev/sdb1.
Рис 7.Результат выполнения команды fsck /dev/sdb1
Файл /etc/fstab
fstab - один из конфигурационных файлов в UNIX-подобных системах, который содержит
информацию о различных файловых системах и устройствах хранения информации компьютера;
описывает, как диск (раздел) будет использоваться или как будет интегрирован в систему.
Полный путь к файлу — /etc/fstab.
Каждая запись имеет следующие поля (которые разделяются пробелом или табуляцией):
<file system>
<dir> <type> <options> <dump> <pass>
 Поле, <file system> (файловая система) сообщает демону монтирования файловых систем
mount, что монтировать, имя монтируемого устройства.
 Второе поле, <dir> (директория), определяет куда монтировать <file system>.
 Поле <type> (тип) содержит тип файловой системы монтируемого устройства. Полный
список поддерживаемых систем можно просмотреть выполнив команду: man mount
 Следующее поле называется <options> (опции).
Список опций:
auto
Файловая система монтируется при загрузке автоматически или после выполнения
команды 'mount -a'.
noauto Файловая система может быть смонтирована только вручную.
exec
Позволяет вам исполнять бинарные файлы на этом разделе диска.
noexec Бинарные файлы не выполняются.
ro
Монтирует файловую систему только для чтения
rw
Монтирует файловую систему для чтения/записи
Все операции ввода/вывода должны выполняться синхронно
Все операции ввода/вывода должны выполняться асинхронно
Разрешает любому пользователю монтировать файловую систему. Применяет опции
noexec, nosuid, nodev, если они не переопределены.
nouser Только суперпользователь может монтировать файловую систему.
defaults Использовать значения по умолчанию. (rw, suid, dev, exec, auto, nouser, async)
suid
Разрешить операции с suid и sgid битами. В основном используются, чтобы позволить
пользователям выполнять бинарные файлы со временно приобретёнными привилегиями
для выполнения определённой задачи.
nosuid Запрещает операции с suid и sgid битами.
nodev
Данная опция предполагает, что на монтируемой файловой системе не будут созданы
файлы устройств (/dev). Корневой каталог и целевая директория команды chroot всегда
должны монтироваться с опцией dev или defaults.
noatime Отключить возможность получения информации о последнем доступе/изменении файла.
 Поле <dump> используется утилитой dump для того чтобы решить, когда делать резервную
копию. Возможные значения поля — 0 и 1. Если 0, то dump игнорирует файловую систему,
если 1, то dump сделает резервную копию.
 Последнее поле — <pass> . fsck проверяет число, подставленное в поле <pass> и решает, в
каком порядке проверять файловую систему. Возможные значения 0, 1 и 2. Файловые систему
со значением <pass>, равным 0, не будут проверены утилитой fsck. У корневой системы
должен быть наибольший приоритет, 1, остальные файловые системы должны иметь
приоритет 2.
Вместо указания имени устройства, можно указать UUID или метку тома, написав LABEL=<label>
или UUID=<uuid>, например, `LABEL=Boot' или `UUID=6e3e9905-46ab-4992-b2bc-136cbfe3ef3c'.
Часть содержимого файла /etc/fstab:
sync
async
user
<file system> <mount point> <type> <options>
<dump> <pass>
proc
/proc
proc nodev,noexec,nosuid 0
0
# / was on /dev/sda1 during installation
UUID=5eb31876-fc80-48a9-9d1e-8136d10fafd0 /
ext4 errors=remount-ro 0
# swap was on /dev/sda5 during installation
UUID=21133324-88e4-4593-94ce-5ecc19ff9e3b none
swap sw
0
0
1
5. Управление файлами.
Изучить и опробовать:
-получение информации о файлах и каталогах; ls;
-команды файловых операций: cd, pwd, cp, mv, rm,mkdir, rmdir;
-создание прямой и символической ссылки ln;
-команды поиска find, вывода cat, tee, more, file;
-перенаправление потоков ввода-вывода (<,>,>>) и каналы (|);
-управление правами доступа: chmod, chown, chgrp;
-настройка различных прав доступа с проверкой возможных операций над файлами;
-утилиты группы mtools для работы файловой системой MS-DOS.
Команда ls
Команда ls сначала выводит список всех файлов (не каталогов), перечисленных в командной
строке, а затем выводит список всех файлов, находящихся в каталогах, перечисленных в командной
строке. Если не указано ни одного файла, то по умолчанию аргументом назначается ‘.’ (текущий
каталог).
Выполнение: запустим команду ls без аргументов.
Рис 1.Запуск команды ls без аргументов
Синтаксис:
ls [опции] [файл...]
Опции:
 -a, --all - выдавать все файлы в каталогах, включая все файлы, начинающиеся с `.'.
Выполним команду ls с аргументом –a для того чтобы она отобразила все файлы в каталоге, включая
все файлы, начиная с ‘.’ .
Рис 2. Результат выполнения ls -a
 -b, --escape, --quoting-style=escape - заменять неграфические символы в именах файлов,
используя алфавитно-цифровые последовательности, а также последовательности вида \ 000'
с восьмеричными цифрами, как в языке C.
 -c, --time=ctime, --time=status - сортировать содержимое каталога в соответствии с временем
изменения состояния файла.
 -d, --directory - выдавать имена каталогов, как будто они обычные файлы, вместо того, чтобы
показывать их содержимое.
 -f - не сортировать содержимое каталога; выдавать файлы в том порядке, в котором они
записаны на диск.
 -h, --human-readable - добавлять к каждому размеру файла букву размера.
 -i, --inode - выдавать номер inode (серийный номер файла, этот номер однозначно
идентифицирует каждый файл в каждой файловой системе) каждого файла, слева от его
имени.
Результат выполнения команды ls –i отображен на рисунке 34.
Рис 3. Выполнение команды ls –i
 -k, --kilobytes - если выдаются размеры файлов, то выдавать их в килобайтах.
 -n, --numeric-uid-gid - выдавать числовые UID и GID вместо имен владельца и группы.
 -q, --hide-control-chars - выдавать знаки вопроса вместо неграфических символов в имени
файла. Эта опция включена по умолчанию.
 -r, --reverse - сортировать содержимое каталога в обратном порядке.
 -s, --size - выдавать размер каждого файла в блоках по 1024 байта слева от имени файла. Если
установлена переменная окружения POSIXLY_CORRECT, то применяется размер блока 512,
если не задана опция -k .
 -t, --sort=time - сортировать по времени последней модификации
 -u, --time=atime, --time=access, --time=use - сортировать по времени последнего доступа к
файлу (рис. 35)
Рис 4. Выполнение команды ls –u
 -v - производить сортировку в соответствии с номером версии файлов.
 -A, --almost-all - выдавать все файлы, кроме `.' и `..'.
 -B, --ignore-backups - не показывать файлы, которые заканчиваются на `~', если они не заданы
в командной строке.
 -F, --classify, --indicator-style=classify - добавлять к каждому имени файла символ,
показывающий его тип. Для обычных исполняемых файлов это `*'. Для каталога добавляется
`/', для FIFO - `|', для символических ссылок `@', для гнезд `=', для обычных файлов ничего не
добавляется (рис. 36).
Рис 5. Выполнение команды ls –F
 -H, --si - делает то же, что и опция -h, но использует официальные единицы измерения SI (где
для расчетов используется 1000 вместо 1024).
 -L, --dereference - выдавать информацию о файлах, на которые указывают символические
ссылки, вместо информации о самих символических ссылках.
 -R, --recursive - рекурсивно выдавать список содержимого всех каталогов (рис. 37).
Рис 6. Выполнение команды ls –R
Команда cd
Данная команда выполняет переход в другой каталог.
Синтаксис: cd новая_папка
Аргумент новая_папка указывает новый каталог, в который следует перейти.
В Linux текущий каталог представляется точкой, родительский каталог – двумя точками, рабочий
каталог пользователя обозначается символом ~.
Выполнение: перейдем в каталог /home.
Рис 7. Выполнение команды cd /home
Команда pwd
Данная команда печатает полное имя каталога.
Синтаксис: pwd [option]
Опции: --help и –version.
Выполнение: выведем полное имя каталога, на который мы перешли.
Рис 8. Выполнение команды pwd
Команда cp
Данная команда копирует файлы.
Синтаксис:
cp [опции] … source dest
cp [опции] ... source…directory
Данная команда может копировать один файл source (источник) в другой dest(приесник), а может
также копировать несколько файлов в целевой каталог directory.
В последнем случае применяется вторая форма команды ср, а последним аргументом является
существующий каталог.
Опции:
 -a, --archive - по возможности сохраняет структуру и атрибуты исходных файлов при
копировании (но не сохраняет структуру каталогов).
 -b – выполняет резервирование каждого файла
 -d - копирует символьные ссылки как символьные ссылки, а не файлы, на которые они
указывают, и сохраняет жесткие ссылки между исходными файлами в копиях.
 -f, --force - удаляет существующие файлы в случае возникновения ошибки при открытии их на
чтение и никогда не спрашивает подтверждения перед тем как это сделать.
 -i, --interactive - спрашивает, нужно ли перезаписывать существующие файлы. Скопируем
файл text из каталога /home/oleg/flashusb в каталог /home/oleg/ подразумевая, что он там уже
существует воспользуемся командой cp -i /home/oleg/flashusb/os_yes.bat
/home/oleg/os_surprise.bat для запроса о перезаписи (рис. 40)
Рис 9.




Выполнение команды cp -i
- H - следовать по символической ссылке в SOURCE
-l, --link - делает жесткие ссылки вместо копирования обычных файлов (не каталогов).
--no-preserve=АТРИБУТЫ - не сохраняет заданные атрибуты.
-p, --preserve - защищает оригинальные параметры файла, такие как владелец, группа, права
доступа и временные штампы.
 --parents - формирует имя каждого копируемого файла путем добавления к имени каталога, в
который осуществляется копирование, символа косой черты (/) и указанного полного имени
исходного файла. Последний заданный аргумент cp должен быть именем существующего
каталога.
 -R, --recursive - копирует каталоги рекурсивно.
 --reply=HOW - здесь аргумент HOW может принимать одно из значений "yes", "no", "query",
определяя какой ответ будет автоматически даваться на все вопросы: "да", "нет" или "запрос"
пользователю соответственно.
 --remove-destination - удаляет каждый существующий (в том месте куда происходит
копирование) файл, перед копированием.
 -s, --symbolic-link – вместо копирования создает символические ссылки
 -t, --target-directory=КАТАЛОГ - указывает выходной каталог.
 -u, --update – копирует только, если исходный файл новее.
 -v, --verbose - выводить имя каждого файла перед его копированием.
Выполнение: произведем копирование всех файлов из каталога /home/oleg/untitled в каталог
/home/oleg/untitled2 с подробностями. Для этого пропишем cp -v /home/oleg/untitled/*
/home/oleg/untitled2.
Рис 10. Выполнение команды cp -v /home/oleg/untitled/* /home/oleg/untitled2
 -x, --one-file-system - пропускать подкаталоги, которые расположены на файловых системах,
отличных от той, где начиналось копирование.
Команда mv
Данная команда перемещает или переименовывает файлы или каталоги.
Синтаксис:
mv [опции...] исходный_файл файл_назначения
mv [опции...] исходный_файл... каталог
Опции:
 -f, --force - удаляет файлы_назначения, если они существуют, не спрашивая об этом
пользователя.
 -i, --interactive - просит подтверждения на замену существующего файла, в виде вопроса,
которые выводится на стандартный вывод ошибок и читает ответ из стандартного ввода. Если
ответ не утвердительный, то файл пропускается.
 -u, --update - не переносит исходный файл, которые уже существуют в месте, куда
осуществляется перенос и имеют то же самое или более позднее время модификации.
 -v, --verbose - выдавать имя каждого файла перед его переносом.
Выполним переименование файла /home/oleg/untitled2/LAB5.rtf в /home/oleg/untitled2/k.rtf. Для этого
введем команду mv –f - v /home/oleg/untitled2/LAB5.rtf /home/oleg/untitled2/k.rtf.
Рис 11. Смена имени файла.
Команда rm
rm удаляет каждый заданный файл. По умолчанию каталоги не удаляются, но если заданы опции -r
или -R, то будет удаляться все дерево каталогов ниже заданного каталога, включая и его.
Синтаксис: rm [опции] файл...
Опции:
 -d, --directory - удалять каталоги с помощью системного вызова unlink вместо rmdir, и не
требовать, чтобы каталог был пуст перед его разлинковкой. Работает только если у вас есть
соответствующие привилегии.
 -f, --force - игнорировать несуществующие файлы и никогда не запрашивать подтверждение
на удаления.
 -i, --interactive - выдавать запрос на удаление каждого файла. Если ответ не утвердителен, то
файл пропускается.
 -r, -R, --recursive - рекурсивно удалять содержимое каталогов.
 -v, --verbose - выдавать имя каждого файла перед его удалением.
Выполнение: удалим файлы k.rtf ,doc1.docx,agent.key из каталога /home/oleg/untitled2.
Рис 12. Результат выполнения команды rm -i /home/oleg/untitled2/*
Команда mkdir
mkdir создает каталоги с заданными именами.
Синтаксис: mkdir [опции] каталог...
Опции:
 -m права, --mode=права - устанавливает права доступа к создаваемым каталогам. Эти права
могут быть заданы либо в символьном виде, как описано в chmod, либо в виде восьмеричного
числа.
 -p, --parents - создает недостающие родительские каталоги для каждого указанного каталога.
 --verbose - выдавать сообщение для каждого создаваемого каталога.
Выполнение: Создадим каталог friday, а в нем каталог photo в каталоге /home/oleg/.
Рис 13. Создание каталога.
Команда rmdir
rmdir удаляет пустые каталоги. Если какой-либо из аргументов каталог не указывает на
существующий пустой каталог, то будет выдано сообщение об ошибке.
Синтаксис
rmdir [опции] каталог...
Опции
 --ignore-fail-on-non-empty - данная опция заставляет rmdir игнорировать ошибки при удалении
каталога, если эти ошибки вызваны тем, что каталог не пуст.
 -p - если каталог включает более, чем один компонент пути, то удаляется каталог, затем
убирается последний компонент пути и удаляется получившийся каталог и т. д. до тех пор,
пока все компоненты не будут удалены.
Выполнение: удалим каталог friday. Т.к. была вызвана ошибка при удалении каталога Friday,
пришлось удалить внутренний каталог photo.
Рис 14. Результат выполнения команды rmdir.
Команда ln
ln делает ссылки между файлами. По умолчанию делаются жесткие ссылки; при указании опции -s ,
делаются символьные (или мягкие) ссылки.
Синтаксис
ln [опции] исходный [куда]
ln [опции] исходный... каталог
Опции
 -d, -F, --directory - позволяет суперпользователю делать жесткие ссылки на каталоги.
 -f, --force - удалять существующие файлы куда.
 -i, --interactive - запрашивать подтверждение удаления файлов куда.

-n, --no-dereference - считать файл куда обычным файлом, если явно заданный параметр куда
является символьной ссылкой на каталог.
 -s, --symbolic - делать символьные ссылки вместо жестких ссылок. Данная опция будет
вызывать сообщение об ошибке для тех систем, которые не поддерживают символьные
ссылки.
 -v, --verbose - выдавать имя каждого файла перед тем как создавать для него ссылку.
Выполнение: создадим жесткую ссылку на файл /etc/passwd.
Рис 15. Результат выполнения команды ln –i /etc/passwd ./pw
Команда find
find производит поиск файлов по маршруту path по многочисленным критериям:
 по имени файла или шаблону имени
 по ссылкам
 тех, которые использовались в определенный промежуток времени
 по размеру
 по типу
 по владельцу или группе
 с определенными полномочиями доступа
 содержащих текст, совпадающий с указанным шаблоном
 по местонахождению в дереве каталогов (по глубине вхождения в структуру каталога)
 по комбинации перечисленных условий
Синтаксис: find [путь] [опции] [критерии поиска] [действия над файлами]
Опции:
 -daystart – в качестве точки отсчета времени принимает начало дня
 -depth – обрабатывает содержимое каждого подкаталога перед обработкой собственно
каталога
 -follow – не следует поиске учитывать символические ссылки
 -maxdepth levels – производит поиск в дереве каталогов не глубже указанного уровня levels
 -mount – не выполняет поиск в каталогах других файловых систем
У команды find может быть несколько критериев поиска (их также называют tests). Каждый критерий
представляет собой определенное условие проверки.
-atime N
Последний раз к файлу обращались N дней назад.
-mtime N
Последнее изменение файла было N дней назад.
-name шаблон
Имя файла (шаблон имени) без указания пути. Рекомендуется всегда заключать
шаблон в кавычки.
-newer другой_файл Файл был изменен позже, чем другой_файл.
-size [±]N[cwbkMG] Размер файла равен N блокам, если указано +N, тогда размер файла больше N, N — меньше. Символ после N означает размер блока. b — 512 байт, с — байт, w
— 2 байта, k — килобайт, M — мегабайт, G — гигабайт.
-type C
Файл типа C. Наиболее часто используемые значения для С: d — каталог, f —
файл.
-user
Файл принадлежит пользователю с именем Имя_пользователя.
Имя_пользователя
Воспользуемся командой find, чтобы найти в каталоге /home/oleg файлы принадлежащие
пользователю root не включая в поиск другие ФС.
Рис 16. Результат выполнения команды find /home/oleg –mount –user root
Команда cat
cat - объединяет файлы и направляет их на стандартный вывод.
Синтаксис: cat [ПАРАМЕТР] [ФАЙЛ]...
Опции:
 -A, --show-all - эквивалентно использованию -vET
 -b, --number-nonblank - нумерует все непустые строки выходного файла, начиная c 1
 -e - эквивалентно -vE
 -E, --show-ends - выводит в конце каждой строки символ $.
 -n, --number - нумерует все строки выходного файла, начиная с .
Рис 17. Результат выполнения команды cat –E –n /etc/mtab
 -s, --squeeze-blank - заменяет набор пустых строк одной пустой строкой
 -t - эквивалентно -vT
 -T, --show-tabs - выводит символы табуляции в формате ^I
 -v, --show-nonprinting - выводит управляющие символы кроме символов перевода строки
(LFD) и табуляции (TAB), для которых использует символ ^ и M-нотацию
Команда tee
tee считывает данные из стандартного устройства ввода и записывает их на стандартное устройство
вывода или в файл.
Синтаксис: tee [ПАРАМЕТР]... [ФАЙЛ]...
Выполнение: воспользуемся командой tee для записи в файл file.txt и посмотрим его содержимое.
Рис 18. Результат выполнения команды tee file.txt
Опции:
 -a, --append - добавлять данные к указанным файлам, не перезаписывать
 -i, --ignore-interrupts - игнорировать сигналы прерываний
Команда more
Данная команда представляет фильтр для вывода текста.
Синтаксис: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
Опции:
 -num – устанавливает размер экрана в строках
 -d – выводит для пользователя приглашение и сообщение, если нажимается неверная кнопка.
 -f – вместо строк экрана подсчитывает логические строки, не усекая длинные строки
 -р – не выполняет прокрутку: полностью очищает экран, а затем отображает текст
 -s – заменяет несколько подряд идущих пустых строк одной пустой
 +/ pattern – до отображения каждого файла выполняет поиск строк по заданному образцу
 + linenum – начинает отображение со строки с указанным номером linenum
Выполнение: выведем содержимое файла text1.
Рис 19. Результат выполнения команды more ./text1
Выполнение: выведем всего 5 строк текста, заменив несколько пустых строк одной.
Рис 20. Результат выполнения команды more –f -s -5 txt
Команда file
Команда file проводит серию тестов, пытаясь классифицировать файлы, указанные в командной
строке. Если файл текстовый, команда пытается по первым 512 байтам угадать язык
программирования. Для выполняемых файлов выдается также номер версии, если он больше 0
Синтаксис: file [-c] [-f файл_имен] [-m магический_файл] файл ...
Выполнение: команда file без параметров.
Рис 21. Результат выполнения команды file дсврсм.jpg
Опции:
 -c -Проверка правильности формата магического файла. При наличии опции -c типы файлов
не определяются.
 -f файл_имен - Определяются типы файлов, имена которых заданы в файле_имен.
 -m магический_файл - Задается магический_файл, отличный от стандартного, /etc/magic.
Магический файл содержит список магических чисел, по которым и производится
классификация. Комментарии в начале файла /etc/magic объясняют его формат.
Перенаправление потока вывода
Во многих случаях удобнее работать не со стандартным выводом на монитор, а с файлами. Файлы
можно сохранять, редактировать, посылать по почте, и т.д. Можно перенаправить вывод команды в
файл, применив оператор перенаправления > и указав имя файла. При этом не важно, существует ли
такой файл на самом деле. Если такого файла нет, то он будет создан, а если есть, то перезаписан.
Выполнение: выведем в файл txt команды прочтения этого же файла more –f -s -5 txt и посмотрим
результат.
Рис 22. Результат перенаправления вывода команды more –f -s -5 txt в файл
Можно дописать в файл вывод других команд, не уничтожая имеющегося содержимого. Для этого
служит оператор >> .
Перенаправление потока ввода
Перенаправление потока ввода < можно продемонстрировать на команде wc –w которая служит для
подсчета числа слов. Конечно, данная команда может работать, если указать в качестве аргумента
файл, но можно также воспользоваться оператором < для перенаправления потока ввода из файла.
Рис 23. Результат перенаправления потока ввода
Каналы
Особым вариантом перенаправления вывода является организация программного канала. Для этого
две или несколько команд, таких, что вывод предыдущей служит вводом для следующей,
разделяются символом "|". При этом стандартный выходной поток команды, расположенной слева от
символа |, направляется на стандартный ввод программы, расположенной справа от символа |.
Выполнение:
Рис 24. Результат выполнения команды cat txt | wc –w >>txt | cat txt
Полученный результат означает, что вывод команды cat, т.е. текст из файла txt, будет направлен
на вход команды wc -w, которая посчитает количество слов и запишет это в файл txt. Как только
запись произошла, команда cat выведет этот файл на экран.
Программные каналы используются для того, чтобы скомбинировать несколько маленьких
программ, каждая из которых выполняет только определенные преобразования над своим входным
потоком, для создания обобщенной команды, результатом которой будет какое-то более сложное
преобразование.
Оболочка одновременно вызывает на выполнение все команды, включенные в конвейер, запуская
для каждой из команд отдельный экземпляр оболочки, так что как только первая программа начинает
что-либо выдавать в свой выходной поток, следующая команда начинает его обрабатывать. Так же
каждая следующая команда выполняет свою операцию, ожидая данных от предыдущей команды и
выдавая свои результаты на вход последующей.
Управление правами доступа
Команда chmod
Для изменения прав доступа к файлу используется команда chmod. Ее можно использовать в двух
вариантах. В первом варианте вы должны явно указать, кому какое право даете или кого этого права
лишаете:
[user]$ chmod wXp имя-файла
где вместо символа w подставляется либо символ u (т. е. пользователь, который является
владельцем); либо g (группа); либо o (все пользователи, не входящие в группу, которой принадлежит
данный файл); либо a (все пользователи системы, т. е. и владелец, и группа, и все остальные). Вместо
X ставится: либо + (предоставляем право); либо – (лишаем соответствующего права); либо =
(установить указанные права вместо имеющихся), Вместо p — символ, обозначающий
соответствующее право:
 r (чтение);
 w (запись);
 x (выполнение).
Синтаксис:
chmod [опции] режим файл...
Выполнение: лишим права чтения файла txt его владельца oleg.
Рис 25. Лишения владельца права на запись в файл txt
Попробуем прочитать этот файл. Сообщение указывает на отсутствие полномочий.
Рис 26. Попытка чтения
Опции:
 -c, --changes - подробно описывать действия для каждого файла, чьи права действительно
изменяются.
 -f, --silent, --quiet - не выдавать сообщения об ошибке для файлов, чьи права не могут быть
изменены.
 -v, --verbose - подробно описывать действие или отсутствие действия для каждого файла.
Второй вариант задания команды chmod (он используется чаще) основан на цифровом
представлении прав. Для этого мы кодируем символ r цифрой 4, символ w — цифрой 2, а символ x
— цифрой 1. Для того, чтобы предоставить пользователям какой-то набор прав, надо сложить
соответствующие цифры. Получив, таким образом, нужные цифровые значения для владельца файла,
для группы файла и для всех остальных пользователей, задаем эти три цифры в качестве аргумента
команды chmod (ставим эти цифры после имени команды перед вторым аргументом, который задает
имя файла). Например, если надо дать все права владельцу (4+2+1=7), право на чтение и запись —
группе (4+2=6), и не давать никаких прав остальным, то следует дать такую команду:
[user]$ chmod 760 file_name
Выполнение: запретим все права для файла для всех. Команда ls –l отобразит права пользователей.
Рис 27. Результат запрета.
Однако пользователь oleg все равно может изменять права для файла.
Предоставление прав доступа к файлу также зависит от прав доступа к каталогу, в котором
находится файл. Например, даже если права доступа к файлу установлены как -rwxrwxrwx, другие
пользователи не могут иметь доступа к файлу, пока они не имеют прав на чтение и исполнение к
каталогу, в котором находится файл.
Выполнение: установим на каталог untitled2 права –r-- r-- --- ,а на файл /untitled2/txt –
rwxrwxrwx(полные права). При этом пользователь oleg(владелец) не может получить доступ к
каталогу.
Рис 28. Нет доступа к каталогу.
И даже посмотреть установленные права на файл txt и изменить их
Рис 29. Нет доступа просмотра прав файла, с полными правами.
Рис 30. Нет доступа к изменению прав файла.
Пользователь os не может прочитать файл txt из каталога.
Рис 31. Нет доступа к чтению у других пользователей.
Чтобы, в принципе, иметь доступ к файлу, вы должны иметь право на исполнение ко всем
каталогам вдоль пути к файлу и право на чтение (или исполнение) к самому файлу. Как правило,
пользователи системы Linux не скрывают свои файлы. Обычно права доступа к файлам
устанавливаются как -rw-r-r--, что позволяет другим пользователям читать файлы, но не изменять их.
Для каталогов права доступа часто предоставляются в виде -rwxr-xr-x, что позволяет другим
пользователям просматривать ваши каталоги, но не создавать и не удалять файлы в них.
 -R, --recursive - рекурсивное изменение прав доступа для каталогов и их содержимого.
Выполнять смену прав доступа к файлу с помощью команды chmod может только сам владелец
файла или суперпользователь. Для того чтобы иметь возможность изменить права группы, владелец
должен дополнительно быть членом той группы, которой он хочет дать права на данный файл.
Есть еще о три возможных атрибута файла, устанавливаемых с помощью той же команды chmod.
Это те самые атрибуты для исполняемых файлов, которые в индексном дескрипторе файла в
двухбайтовой структуре, определяющей права на файл, занимают позиции 5-7, сразу после кода типа
файла.
Первый из этих атрибутов — так называемый "бит смены идентификатора пользователя".
Смысл этого бита состоит в следующем.
Обычно, когда пользователь запускает некоторую программу на выполнение, эта программа
получает те же права доступа к файлам и каталогам, которые имеет пользователь, запустивший
программу. Если же установлен "бит смены идентификатора пользователя", то программа получит
права доступа к файлам и каталогам, которые имеет владелец файла программы (таким образом,
рассматриваемый атрибут лучше называть "битом смены идентификатора владельца"). Это
позволяет решать некоторые задачи, которые иначе было бы трудно выполнить. Самый характерный
пример — команда смены пароля passwd. Все пароли пользователей хранятся в файле /etc/passwd,
владельцем которого является суперпользователь root. Поэтому программы, запущенные обычными
пользователями, в том числе команда passwd, не могут производить запись в этот файл. А, значит,
пользователь как бы не может менять свой собственный пароль. Но для файла /usr/bin/passwd
установлен "бит смены идентификатора владельца", каковым является пользователь root.
Следовательно, программа смены пароля passwd запускается с правами root и получает право записи
в файл /etc/passwd (уже средствами самой программы обеспечивается то, что пользователь может
изменить только одну строку в этом файле). Установить "бит смены идентификатора владельца"
может суперпользователь с помощью команды #chmod +s file_name.
Еще один возможный атрибут исполняемого файла — это "бит сохранения задачи" или "sticky
bit" (дословно — "бит прилипчивости"). Этот бит указывает системе, что после завершения
программы надо сохранить ее в оперативной памяти. Удобно включить этот бит для задач, которые
часто вызываются на выполнение, так как в этом случае экономится время на загрузку программы
при каждом новом запуске. Этот атрибут был необходим на старых моделях компьютеров. На
современных быстродействующих системах он используется редко. Если используется цифровой
вариант задания атрибутов в команде chmod, то цифровое значение этих атрибутов должно
предшествовать цифрам, задающим права пользователя:# chmod 4775 file_name
При этом веса этих битов для получения нужного суммарного результата задаются следующим
образом:
4 — "бит смены идентификатора пользователя",
2 — "бит смены идентификатора группы",
1 — "бит сохранения задачи (sticky bit)".
Если какие-то из этих трех битов установлены в 1, то несколько изменяется вывод команды ls -l в
части отображения установленных атрибутов прав доступа. Если установлен в 1 "бит смены
идентификатора пользователя", то символ "x" в группе, определяющей права владельца файла,
заменяется символом "s". Причем, если владелец имеет право на выполнение файла, то символ "x"
заменяется на маленькое "s", а если владелец не имеет права на выполнение файла (например, файл
вообще не исполняемый), то вместо "x" ставится "S". Аналогичные замены имеют место при задании
"бита смены идентификатора группы", но заменяется символ "x" в группе атрибутов, задающих
права группы. Если равен 1 "бит сохранения задачи (sticky bit)", то заменяется символ "x" в группе
атрибутов, определяющей права для всех остальных пользователей, причем "x" заменяется символом
"t", если все пользователи могут запускать файл на выполнение, и символом "T", если они такого
права не имеют.
Задание прав доступа:
Команда
Результат
chmod a+r file
Даёт всем пользователям право на чтение файла.
chmod +x file
Аналогично предыдущему примеру. Если никакие из набора символов a, u, g
или o не указаны, то это эквивалентно указанию символа a.
chmod og-x file
Лишает всех пользователей, кроме собственника, права на исполнение файла.
chmod u+rwx file
Разрешает собственнику читать, изменять и исполнять файл.
chmod o-rwx file
Запрещает читать, записывать и исполнять файл всем пользователям, кроме
собственника файла и пользователей из группы.
Chmod 777 file
Даёт всем пользователям право на чтение, запись и исполнение файла.
Команда chown
chown изменяет владельца и/или группу для каждого заданного файла.
В качестве имени владельца/группы берется первый аргумент, не являющийся опцией. Если задано
только имя пользователя (или числовой идентификатор пользователя), то данный пользователь
становится владельцем каждого из указанных файлов, а группа этих файлов не изменяется. Если за
именем пользователя через двоеточие следует имя группы (или числовой идентификатор группы),
без пробелов между ними, то изменяется также и группа файла.
Синтаксис: chown [опции] пользователь[:группа] файл...
Выполнение: изменим владельца файла txt.
Рис 32. Результат выполнения команды chown os:root txt
После выполнения команды владельцем файла стал пользователь os с группой root.
Опции:
 -c, --changes - подробно описывать действие для каждого файла, владелец которого
действительно изменяется.
 -f, --silent, --quiet - не выдавать сообщения об ошибках для файлов, чей владелец не может
быть изменен.
 -h, --no-dereference - работать с самими символьными ссылками, а не с файлами, на которые
они указывают.
 -v, --verbose - подробное описание действия (или отсутствия действия) для каждого файла.
 -R, --recursive - рекурсивное изменение владельца каталогов и их содержимого.
 --dereference - изменяет владельца файла, на который указывает символьная ссылка, вместо
самой символьной ссылки.
 --reference=rfile - изменяет владельца файла на того, который является владельцем rfile.
Команда chgrp
Chgrp изменяет группу каждого заданного файла на группу, которая может быть представлена как
именем группы, так и ее числовым идентификатором (GID).
Синтаксис: chgrp [опции] группа файл...
Опции:
Все те же самые, что и у команды chown.
Mtools
В системе Linux имеется набор утилит mtools, которые обеспечивают доступ к дискетам,
отформатированным для использования в MS-DOS. Команда mсору позволяет копировать файлы на
такую дискету и с нее. Никаких специальных операций вроде операции монтирования проводить не
нужно. В отличие от обычных путевых имен DOS, в путевых именах, используемых с mtools, вместо
обратного слеша используется прямой слеш. Каталог docs на диске А: обозначается путевым именем
a:/docs, а не a:\docs.
С помощью команды mdir можно получить список файлов, имеющихся на дискете MS-DOS, а с
помощью команды mcd ≈ переходить на этой дискете из каталога в каталог. Большинство
стандартных команд MS-DOS могут выполняться как операции mtools . В частности, можно
создавать каталоги MS-DOS (команда mmd) и удалять файлы (mdel). Доступ к разделам MS-DOS
конфигурируется файлом /etc/mtools.conf, в котором перечислены различные стандартные разделы
MS-DOS и дисководы. Каждый дисковод или раздел обозначается определенным именем устройства.
6. Управление заданиями.
Научиться запускать и управлять заданиями в оперативном и фоновом режимах. Команды
jobs, ps, top, fg, bg, kill, stop, at, Ctrl+Z.
Задания и процессы
Всякая выполняющаяся в Linux программа называется процессом. Linux как многозадачная
система характеризуется тем, что одновременно может выполняться множество процессов,
принадлежащих одному или нескольким пользователям. Работающий процесс также называют
заданием (job). Понятия процесс и задание являются взаимозаменяемыми. Однако обычно процесс
называют заданием, когда имеют ввиду управление заданием (job control). Управление заданием —
это функция командной оболочки, которая предоставляет пользователю возможность переключаться
между несколькими заданиями.
В большинстве случаев пользователи запускают только одно задание. Однако многие
командные оболочки (включая bash и tcsh) имеют функции управления заданиями (job control),
позволяющие запускать одновременно несколько команд или заданий (jobs) и, по мере надобности,
переключаться между ними.
Передний план (оперативный режим) и фоновый режим
Задания могут быть либо на переднем плане (foreground), либо фоновыми (background). На
переднем плане в любой момент времени может быть только одно задание. Задание на переднем
плане — это то задание, с которым вы взаимодействуете; оно получает ввод с клавиатуры и посылает
вывод на экран. Напротив, фоновые задания не получают ввода с терминала; как правило, такие
задания не нуждаются во взаимодействии с пользователем.
Некоторые задания исполняются очень долго, и во время их работы не происходит ничего
интерактивного. Пример таких заданий — компилирование программ, а также сжатие больших
файлов. Такие задания следует запускать в фоновом режиме. В это время можно работать с другими
программами.
Для управления выполнением процессов в Linux предусмотрен механизм передачи сигналов.
Сигнал — это способность процессов обмениваться стандартными короткими сообщениями
непосредственно с помощью системы. Сообщение-сигнал не содержит никакой информации, кроме
номера сигнала. Для того чтобы передать сигнал, процессу достаточно задействовать системный
вызов kill(), а чтобы принять сигнал, не нужно ничего. Если процессу нужно как-то по-особенному
реагировать на сигнал, он может зарегистрировать обработчик, а если обработчика нет, за него
отреагирует система. Как правило, это приводит к немедленному завершению процесса,
получившего сигнал. Обработчик сигнала запускается асинхронно, немедленно после получения
сигнала, что бы процесс в это время ни делал.
Два сигнала — номер 9 (KILL) и 19 (STOP) — всегда обрабатывает система. Первый из них
нужен для того, чтобы убить процесс наверняка. Сигнал STOP приостанавливает процесс: в таком
состоянии процесс не удаляется из таблицы процессов, но и не выполняется до тех пор, пока не
получит сигнал 18 (CONT) — после чего продолжит работу. В командной оболочке Linux
сигнал STOP можно передать активному процессу с помощью управляющей
последовательности Ctrl-Z.
Сигнал номер 15 (TERM) служит для прерывания работы задания. При прерывании (interrupt)
задания процесс погибает. Прерывание заданий обычно осуществляется управляющей
последовательностью Ctrl-C. Восстановить прерванное задание никаким образом невозможно.
Следует также знать, что некоторые программы перехватывают сигнал TERM (при помощи
обработчика), так что нажатие комбинации клавиш Ctrl-C может не прервать процесс немедленно.
Это сделано для того, чтобы программа могла уничтожить следы своей работы прежде, чем она
будет завершена. На практике, некоторые программы вообще нельзя прервать таким способом.
Выполнение: необходимо выполнить поиск файлов, принадлежащих пользователю в каталоге
пользователя. Таких файлов множество по определению и в течении большого промежутка времени
на экран будет выводиться список найденных файлов, а выполнить другие команды не
представляется возможным. Такая ситуация противоречит идее многозадачности. Необходим
способ, с помощью которого можно было бы после ввода команды поиска, не дожидаясь ее
завершения, запустить другую программу. Решить задачу помогает запуск программ в фоновом
режиме. Если запускать задания в фоновом режиме, подсказка командной строки будет оставаться на
экране, а новые задания можно будет запускать, не дожидаясь завершения уже запущенных.
Простейший способ запуска задания в фоновом режиме - завершение команды запуска знаком
амперсанда (&). Этот знак заставляет оболочку запускать команду в фоновом режиме с
незамедлительным возвратом подсказки командной строки на экран.
Рис 1. Запуск на выполнение в фоновом режиме.
Команда jobs
Команда jobs выводит список выполняемых или остановленных заданий.
Выполнение: запустим в фоновом режиме команду find / > text. И воспользуемся командой jobs.
Рис 2. Результат запуска команды jobs после запуска задания в фоновом режиме.
В результате был выведен список в котором видно, что выполняется задание find / >text.
Комбинация Ctrl+Z
Если программа запущена в режиме переднего плана, то ее выполнение может быть
приостановлено комбинацией клавиш Ctrl+Z. Эта комбинация интерпретируется оболочкой как
команда временной остановки текущего процесса. Например, если команду поиска из предыдущего
примера запустить в режиме переднего плана, то после нажатия Ctrl+Z поиск временно
прекращается. Если теперь ввести команду jobs, выведется список в котором будет указано, наше
остановленное задание find / > text.
Рис 3. Результат запуска команды jobs после приостановки задания.
Команда bg и fg
Если функция управления заданиями активна, то вы можете вновь запустить
приостановленный процесс. Чтобы вновь запустить процесс, остановленный командой stop, вы
сначала должны определить JID с помощью команды jobs. Затем вы можете использовать JID со
следующими командами:
fg <JID> - возобновляет приостановленное задание или переводит задание из фонового
режима в оперативный;
Выполнение: возобновим остановленное ранее задание в оперативном режиме.
Рис 4. Возобновление остановленного задание в оперативном режиме
bg <JID> - вновь запускает приостановленное задание в фоновом режиме.
Выполнение: возобновим остановленное ранее задание в фоновом режиме.
Рис 5. Возобновление остановленного задание в фоновом режиме
После того, как остановленное задание переводится в фоновый режим его выполнение
возобновляется, и команда jobs показывает его состояние как Running (выполняется) или Done
(готово).
Команда kill
В некоторых случаях остановленное или фоновое задание приходится завершать либо уничтожать.
Для уничтожения процесса, указанного его идентификатором (РID), используется команда kill.
Можно воспользоваться командой ps для определения идентификатора процесса либо уничтожать
остановленные или фоновые задания непосредственно по их номерам. Утилита kill посылает сигнал
процессу или процессам, заданным операндами pid.
Синтаксис:
kill [-s СИГНАЛ | -СИГНАЛ] PID...
Для каждого операнда pid утилита kill будет выполнять действия, вызванные аргументами:
Значение операнда pid будет использоваться в качестве аргумента pid. В качестве аргумента sig
используется значение, заданное в опции -s, или SIGTERM, если эта опция не указана.
Опции:
 -l - Выдать все значения сигналов, поддерживаемые в данной реализации.
 -s сигнал - Задает сигнал, который надо послать, используя одно из символьных имен.
Выполнение: произведем уничтожение остановленного задания find / > text. Для этого нужно сначала
определить pid Затем послать сигнал SIGKILL(9).
Рис 6. Результат уничтожения остановленного задания
Команда stop
Команда stop приостанавливает временно процессы.
Синтаксис: stop JID<CR>
Команда Ps:
Ps - выдача информации о состоянии процессов.
Синтаксис: ps [optinon]
Команда ps выдает информацию об активных процессах.
По умолчанию выводятся:
 идентификатор процесса
 идентификатор терминала
 истраченное к данному моменту время ЦП
 имя команды
Если нужна иная информация, следует пользоваться опциями. Некоторые опции имеют один
аргумент или список аргументов.
Опции:
-e - вывести информацию обо всех процессах
-d - вывести информацию обо всех процессах, кроме лидеров групп
-a - вывести информацию обо всех наиболее часто запрашиваемых процессах
-f - генерировать полный листинг
Рис 7. Результат выполнения команды ps -f
-l - генерировать листинг в длинном формате
-p – список идентификаторов процессов. Можно узнать какому процессу принадлежит pid=1
-u – список идентификаторов пользователей
Команда at
at – позволяет выполнять команды позже.
Назначенные команды, которые необходимо выполнить в запланированное время, at читает из файла
или со стандартного ввода (клавиатуры). Эти команды формируют задание для at, которое будет
выполнено в заданное вами время. Задание at будет выполняться отдельным процессом командного
интерпретатора.
Выполнение: добавим команды в файл cmd и воспользовавшись командой at назначим время когда
команды из этого файла будут выполнены.
Рис 8. Назначение времени выполнения команд из файла cmd
7. Работа в оболочке MidnightCommander.
Структура и назначение основных каталогов файловой системы Linux.
Midnight Commander (далее просто MC) - это программа файл-менеджер для UNIX
совместимых операционных систем. Используя MC можно выполнять все основные операции с
каталогами, файлами и группами файлов, заходить на удаленные сервера по протоколам FTP и SMB,
редактировать файлы и многое другое.
Первым делом нужно установить MC. Для MC необходимо выполнить команду: sudo apt-get
install mc
sudo - Команда sudo предоставляет возможность пользователям выполнять команды от имени
root либо других пользователей.
apt-get - используется для управления пакетами.
install - установить.
mc – имя пакета Midnight Commander
К сожалению, поддерживаемые дистрибутивом аналогичные пакеты не были найдены.
Рис 1. Попытка установки mc
Выполнение: запустим Midnight Commander - вводим команду mc.
Рис 2. Экран программы MC
Экран MC делится на четыре части. Почти весь зкран занят двумя панелями. По умолчанию,
вторая строка снизу является командной, а в самой нижней отображается назначение
функциональных клавиш. Самая верхняя строка - строка меню. Она может быть не видна, но при
нажатии клавиши F9 или при щелчке мыши эта строка отображается в верхней части экрана. MC
позволяет одновременно наблюдать содержимое двух каталогов. Одна из панелей является текущей.
Практически все команды оперируют над текущей панелью.
Можно выполнять системные команды прямо из MC просто путём их набора на клавиатуре.
Всё, что Вы набираете, появляется в командной строке, а при нажатии клавиши Enter, MC выполнит
набранную строку.
Строка меню появляется при нажатии F9. Строка меню состоит из пяти подменю: "Левая
панель", "Правая панель", "Файл", "Команда" и "Настройки". Меню "Левая панель", "Правая панель",
позволяют оперировать панелями. В меню Файл предлагается список команд, которые могут быть
применены к текущему или к помеченным файлам. В меню Команда содержатся более общие
команды, которые никак не связаны с текущим файлом или помеченной группой файлов.
Рассмотрим некоторые операции находящиеся во вкладке Файл.
MC позволяет просматривать файлы. Например для просмотра файла из каталога достаточно
выбрать файл, открыть меню Файл и выбрать просмотр или же можно не выбирать файл на панели в
выбрать пункт «просмотр файла…», в котором нужно ввести название файла. При просмотре файла
невозможно его изменять. Для его редактирования нужно зайти в меню файл и выбрать пункт
правка. В этом случае также откроется выбранный файл но уже с возможностью редактирования.
MC позволяет более наглядно изменять права доступа. Для этого надо зайти в меню Файл и
выбрать пункт «права доступа». При этом появится окно, которое является графическим
отображением команды chmod. В этом окне можно наглядно выставить нужные права доступа,
определить имя владельца и имя группы для выбранного файла.
Рис 3. Права доступа к файлу
Также возможен вызов окна с расширенной настройкой прав. Для этого нужно выбрать меню
файл, затем пункт Права(расширенные).
Рис 4. Расширенная команда chown
MC позволяет в более наглядном виде создавать ссылки. Например, чтобы создать
символическую ссылку, нужно выбрать меню файл, в нем пункт «символическая ссылка». Появится
окно для создания символической ссылки.
Рис 5. Создание символической ссылки
В результате создастся ссылка, а перед именем будет стоять символ @.
Рис 6. Символическая ссылка
MC позволяет наглядно устанавливать владельца и группу для файла. Для этого выбираем
меню файл , затем пункт Владелец/Группа. В результате появится окно, в котором можно установить
владельца и группу для выбранного файла.
Рис 7. Установка владельца и группы
MC также позволяет производить в наглядном виде типовые операции по созданию каталогов,
переименованию файлов и каталогов, удалению и т.д.
Мощным инструментом также является поддержка горячих клавиш. Например, клавиша F3
для просмотра содержимого файла.
Структура и назначение основных каталогов файловой системы Linux.
Структуру основных каталогов также можно увидеть благодаря MC. Нужно лишь выбрать в
меню левая или правая панель, выбрать пункт «дерево» и перейти в корневой каталог.
Рис 8. Основные каталоги
Основные каталоги:
/bin
Общие программы для совместного использования системой, системным
администратором и пользователями.
/boot
Загрузочные файлы и ядро, vmlinuz. В некоторых последних дистрибутивах также
данные grub.
/dev
Содержит ссылки на все периферийные устройства, которые представлены файлами с
особыми свойствами.
/etc
Большинство важных системных файлов конфигурации находятся в/etc, этот каталог
содержит данные, аналогичные тем что в Панели Управления Windows
/home
Домашние каталоги обычных пользователей.
/initrd
(в некоторых дистрибутивах) Информация для загрузки.
/lib
Файлы библиотек, включает файлы для всех разновидностей программ, необходимых
системе и пользователям.
/lost+found
/mnt
/net
/opt
/proc
/root
/sbin
/tmp
/usr
/var
Здесь находятся файлы, которые были спасены во время сбоев.
Стандартные точки монтирования для внешних файловых систем.
Стандартные точки монтирования для удаленных файловых систем
Как правило, содержит дополнительное ПО и ПО третьих сторон.
Виртуальная файловая система, содержащая информацию о системных ресурсах. .
Домашняя директория администратора.
Программы для использования системой и системным администратором.
Временное место для использования системой, которое очищается после перезагрузки.
Программы, библиотеки, документация и т.д. для всех пользовательских программ.
Место хранения всех изменяемых и временных файлов, созданных пользователями,
такие как log-файлы, почтовые очереди, место для временного хранения файлов,
загружаемых из Интернета, или сохранения образа CD перед записью.
8. Обзор центра управления Gnome
GNOME— свободная среда рабочего стола для Unix-подобных операционных систем. GNOME
является частью проекта GNU.
Разработчики GNOME ориентируются на создание полностью свободной среды, доступной всем
пользователям вне зависимости от их уровня технических навыков, физических ограничений и
языка, на котором они говорят. В рамках проекта GNOME разрабатываются как приложения для
конечных пользователей, так и набор инструментов для создания новых приложений, тесно
интегрируемых в рабочую среду.
GNOME — акроним от англ. GNU Network Object Model Environment («сетевая среда объектной
модели GNU»). Под GNU в данном случае подразумевается не проект, а операционная система,
официальной средой рабочего стола которой он является.
Выполнение: зайдем в центр управления, для этого на рабочем столе в меню выбрать
«система» и далее пункт «Центр управления»(Control Center)
Рис 1. Запуск центра управления
Запустится окно центра управления.
Рис 2. Центр управления
Все конфигураторы центра управления разбиты на следующие группы:
 Personal. Помогают изменить некоторые персональные параметры (информация о
пользователе, ассоциацция приложений)

Internet and Network. Позволяет изменять адрес прокси-сервера и настроить удаленный
доступ к рабочему столу.
 Hardware. Изменяет и просматривает параметры оборудования (монитора, принтера,
жесткого диска и т.д.).
 System. Вызывает системные конфигураторы.
 Other. Прочие конфигураторы
Рассмотрим по одному элементу из каждой группы.
Personal
Рассмотрим пункт «Обо мне»(About me)
.
Рис 3. Пункт Обо мне
Здесь можно заполнить дополнительную информацию о пользователе в данный момент
зарегистрированном в системе. Например, комментарии по поводу работы, дома, заполнить номера
телефонов. Во вкладке адрес можно ввести исчерпывающую информацию о местожительстве и
месте работы. На вкладке персональная информацию можно заполнить данные о занимаемой
должности , домашней странице в интернете, блог. Также возможна смена пароля, пользователя.
Internet and Network.
Пункт Сетевые соединения.
Рис 4. Сетевые соединения
В сетевых соединения пользователь может добавлять, изменять, и удалять различные виды
сетевых соединений.
Hardware
Пункт Настройки клавиатуры.
Рис 5. Настройка клавиатуры
Здесь производятся различные настройки для удобного использования клавиатуры. Можно
например настроить скорость повтора, задержку, раскладку. Можно задействовать управление
мышью с клавиатуры.
System
Пункт Системный монитор.
Рис 6. Системный монитор
Здесь можно узнать различную информацию о системе. Во вкладке Система можно узнать
имя машины в сети, информацию об ОС, версию ядра и т.д. Также можно узнать информацию о
процессоре, оперативной памяти и доступном дисковом пространстве.
На вкладке процессы можно увидеть список запущенных процессов, их состояние, приоритет,
id и т.д. Возможно управление ими: изменение приоритета, завершение и т.д.
Рис 7. Системный монитор - Вкладка процессы
На вкладке ресурсы можно увидеть информацию об использование ресурсов: графики
использования ЦП, использования памяти/подкачки, использования сети.
Рис 8. Системный монитор - Вкладка ресурсы
Во вкладке файловые системы можно увидеть информацию о носителях, корневых каталогах,
типах файловой системы, и информацию о свободном, занятом пространстве и т.д.
Рис 9. Системный монитор - Вкладка файловые системы
Вывод
Во время выполнения лабораторной работы была рассмотрена работа пользователя в операционной
системе Linux (дистрибутив Ubuntu 10.10). Были выполнены несколько основных команд системы, а
также рассмотрена справка по командам. Проведена работа по ознакомлению со структурой
файловой системы, файлами и правами на них.
Download