Лабораторная работа №3 по дисциплине: «Операционные системы» Работа пользователя в Linux



страница1/5
Дата24.11.2016
Размер2.04 Mb.
Просмотров1477
Скачиваний0
ТипЛабораторная работа
  1   2   3   4   5
Нижегородский Государственный Технический

Университет им. Р.Е.Алексеева

Кафедра «Вычислительные системы и технологии»

  

 



 

 

 


 

Лабораторная работа №3 по



дисциплине: «Операционные системы»

 

Работа пользователя в Linux



 

 

  



 

 

 



 
 
Выполнил:

студент группы 10-В-2

  Кульнев Андрей

 

 



 

 

Нижний Новгород



2013 год

Цель работы: Проделать все пункты, указанные в плане работы.

План работы:

  1. Регистрация в системе.

Зарегистрироваться в системе. Изучить правила входа в систему и завершения работы (команды login, logout, passwd, exit, shutdown, Ctrl+Alt+Del, Alt+Fn).

  1. Основные информационные команды.

Научиться пользоваться диалоговым руководством man, ознакомиться с файлами HOW-TO в каталоге /usr/doc/HOW-TO (при их наличии ).

  1. Управление бюджетами пользователей.

В режиме суперпользователя выполнить команды who, id, logname, finger.

Создать новый бюджет командой adduser. Ознакомиться с файлами паролей /etc/passwd, /etc/shadow, составом домашних каталогов и профилей пользователей /etc/skel/profile.



  1. Работа с файловой системой.

Ознакомиться с командами mount, umount, df, mkfs, fsck.

С помощью команды df ознакомиться с разделами винчестера.

Выполнить монтирование файловой системы на дискете. Изучить описание автоматически монтируемых файловых систем в файле /etc/fstab.


  1. Управление файлами.

Изучить и опробовать:

-получение информации о файлах и каталогах; 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.


  1. Работа в оболочке MidnightCommander.

Структура и назначение основных каталогов файловой системы Linux.

  1. Получение информации о системе и обзор средств центра управления 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.

Процедура регистрации пользователя отображена на рисунке 1.



Рис. 1 Процедура регистрации пользователя

В UNIX пользователи должны себя идентифицировать при входе, что состоит из двух шагов:


  • логин - имя, по которому пользователя идентифицирует система

  • пароль - секретное слово для открытия счета

Стоит отметить, что в консольном режиме пароль при вводе не отображается. При вводе неправильного пароля появляется сообщение: Login incorrect. После успешной регистрации в системе появляется приглашение командной строки. Приглашение - это подсказка, выводимая командной оболочкой и свидетельствующая о том, что система готова принимать команды пользователя. Обычно в приглашении содержатся входное имя и имя хоста - в моем случае это "andrew" и "andrew-laptop" соответственно. Заканчивается приглашение чаще всего символом "$".

Команды входа в систему и завершения работы

Команда login

Команда login. Является внешней командой, при её вызове интерпретатор вызывает команду /bin/login.

/bin/login — начинает сеанс в системе

Синтаксис:

login [-p] [-h хост] [имя пользователя] [ПЕРЕМЕННАЯ_СРЕДЫ=ЗНАЧЕНИЕ]

login [-p] [-h хост] -f имя пользователя

login [-p] -r хост

Описание.

Программа /bin/login — используется для создания новой сессии в системе. Она обычно вызывается автоматически в ответ на ввод логина пользователем в терминале. Login может быть оболочкой и не вызываться как дочерний процесс. Когда login вызывается в качестве оболочки он должен быть выполнен как exec login, потому что это заставит выйти пользователя из текущей оболочки. Попытка выполнить login из любой оболочки, как оболочку выдаст сообщение об ошибке.
Параметры:

-f не выполнять аутентификацию, пользователь уже прошел проверку

-h имя удаленного хоста на который нужно зайти

-p сохранять среду

-r выполнить протокол autologin для rlogin

Команда logout и exit

Команда logout — является внутренней командой оболочки bash, которая завершает сценарий работы пользователя в системе. Аналогично работает команда exit

Выйти из сеанса можно и с помощью комбинации клавиш Ctrl+D. Нажатие комбинации клавиш Ctrl+D к закрытию текущего входного потока данных. В сущности, командная оболочка вводит команды пользователя с консоли, как если бы она читала их построчно из файла. Нажатие Ctrl+D сигнализирует ей о том, что этот "файл" закончился, и теперь ей неоткуда больше считывать команды.
Команда passwd

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

Синтаксис: passwd [параметры] [LOGIN]

Описание:

Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи. Программа passwd также изменяет информацию об учётной записи: полное имя пользователя, регистрационную оболочку командной строки или дату устаревания пароля и интервал. Команда запрашивает у обычных пользователей старый пароль (если он был), а затем дважды запрашивает новый. После первого запроса проверяется, достаточен ли "возраст" старого пароля. Возраст - это промежуток времени (обычно несколько дней), который должен пройти между сменами пароля. Если возраст недостаточен, новый пароль отвергается и passwd завершается. Если возраст достаточен, делается проверка на соответствие нового пароля техническим требованиям. Когда новый пароль вводится во второй раз, две копии нового пароля сравниваются. Если они не совпали, цикл запроса нового пароля повторяется, но не более двух раз.
Параметры

-a, --all

Этот параметр можно использовать только вместе с -S для вывода

статуса всех пользователей. Пример выполнения команды passwd –a –S отображен на рисунке



Рис. 2 Выполнение команды passwd –a -S

-d, --delete

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

заблокировать пароль учётной записи. Это делает указанную учётную

запись беспарольной.

Удалим пароль у пользователя andrew (рис. 3)

Рис. 3 Удаление пароля у пользователя andrew

При следующем входе в систему под учетной записью andrew вводить пароль не потребуется требуется.
-e, --expire

Немедленно сделать пароль устаревшим. В результате это заставит

пользователя изменить пароль при следующем входе в систему.
-h, --help

Показать краткую справку и закончить работу.


-i, --inactive ДНЕЙ

Этот параметр используется для блокировки учётной записи по

прошествии заданного числа дней после устаревания пароля. То есть,

если пароль устарел и прошло более указанных ДНЕЙ, то пользователь

больше не сможет использовать данную учётную запись.
-k, --keep-tokens

Указывает, что изменение пароля нужно выполнить только для

устаревших ключей аутентификации (паролей). Пользователи хотят

оставить свои непросроченные ключи нетронутыми.


-l, --lock

Блокирует пользователя. Эта опция отключает пароль изменяя на значение, которое не может быть получено при шифровании. Добавляете «!» перед зашифрованным паролем.


-n, --mindays MIN_DAYS

Задать минимальное количество дней между сменой пароля. Нулевое

значение этого поля указывает на то, что пользователь может менять

свой пароль когда захочет.


-q, --quiet

Не выводить сообщений при работе.


-r, --repository РЕПОЗИТОРИЙ

Изменить пароль в РЕПОЗИТОРИИ.


-S, --status

Отображает информацию о статусах пользователей. Информация о статусе состоит из 7 полей. Первое поле — это имя пользователя. Второе поле содержит идентификатор пароля пользователя. Если пользователь заблокирован — L, если пользователь не имеет пароля — NP, и если пароль есть, и он возможен для использования — P. Третье поле — дата последнего изменения пароля. Следующие 4 поля содержат Минимальный и максимальные сроки использования аккаунта, период когда начать предупреждать пользователя об устаревании пароля, и сроки действия пароля. Допустим мы заблокировали пользователя andrew. Воспользуемся командой passwd –S andrew для отображения информации о статусе пользователя (рис. 4).



Рис. 4 Отображение статуса пользователя andrew

Из рис. 4 видно что пользователь заблокирован.
-u, --unlock

Разблокирует уч. запись пользователя. Возвращает значение пароля к прежнему.


-w, --warndays ПРЕД_ДНЕЙ

Установить число дней выдачи предупреждения, перед тем как

потребуется смена пароля. В параметре ПРЕД_ДНЕЙ указывается число

дней перед тем как пароль устареет, в течении которых пользователю

будут напоминать, что пароль скоро устареет.
-x, --maxdays МАКС_ДНЕЙ

Установить максимальное количество дней, в течении которых пароль

остаётся рабочим. После МАКС_ДНЕЙ пароль нужно изменить.
К сожалению, для моей системы passwd не обладает большой системы оповещение пользователей, поэтому на скриншотах не будет видно результатов действия команды, а будет только выдано сообщение о изменение информации пользователя.
Выполним также команду passwd без параметров для смены пароля пользователя andrew (рис. 5).

Рис. 5 Смена пароля


Правила построения паролей

При создании паролей необходимо выполнять следующие требования:



  • Пароль должен содержать не менее PASSLENGTH символов, как определено в файле /etc/default/passwd. Значение PASSLENGTH должно быть не менее 3.

  • Учитываются только первые восемь символов пароля.

  • Пароль должен содержать не менее двух буквенных символов и одной цифры или специального символа. В данном случае к буквенным символам относятся все прописные и строчные буквы.

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


Команда shutdown

shutdown - завершение работы системы перед выключением компьютера\

Синтаксис

shutdown

Из опций программы shutdown наиболее часто используются две:


  • -h  — полная остановка системы (компьютер будет выключен);

  • -r  — перезагрузить систему.

Параметр time указывает время, когда должна быть выполнена команда (не обязательно выполнять ее немедленно). Время можно указать в форме задержки от текущего момента.

Важный комментарий. Команда reboot завершает работающие процессы сигналом SIGTERM (15), команда shutdown позволяет работающим сервисам самостоятельно завершить работу с помощью прилагаемых init скриптов. Это позволяет корректно завершить работу, почистить кэш где нужно и где это предусмотрено, выполнить какие либо промежуточные действия. Всегда используйте shutdown вместо reboot.
Параметры:

-k Не выключать питание. Только отправить всем предупреждение.

-r Перезагрузить систему

-h Выключить питание

-P Остановить выключение питания.

-H Модифицирует -h флаг.

-c Отменить ожидание.

time когда выключить

warning message сообщение отправляется пользователям.
Например если мы хотим выключить компьютер через 30 минут, то можно прописать shutdown –h 30
Комбинация клавиш [Ctrl][Alt][Fi]

Данная комбинация клавиш переключает на i-ый консольный терминал (i=1..6). Если i=7, то производится переключение графический терминал.




Комбинация клавиш [Ctrl][Alt][Del]

Данная комбинация вызывает окно (рис. 6) , в котором можно выбрать один из трех вариантов: Завершение работы, перезагрузка, спящий режим. Если ничего не выбирать, то система будет автоматически выключена через некоторое время.


Рис. 6 Результат комбинации [Ctrl][Alt][Del]





  1. Основные информационные команды.

Научиться пользоваться диалоговым руководством man, ознакомиться с файлами HOW-TO в каталоге /usr/doc/HOW-TO (при их наличии ).

2.1 Диалоговое руководство man

Практически любая UNIX система имеет то, что называется "Руководство" man (“manual pages”'). Эта команда man содержит документацию на различные команды системы, ресурсы, конфигурационные файлы. Несомненно, в настоящее время необходимость знать консольные команды не так остро нависает над пользователями. Если компьютер с установленным Linux используется исключительно для выхода в интернет, редактирования документов, просмотра видео и прослушивания музыки - проблемы, требующие владения консолью, вряд ли возникнут. Использование справочной системы с помощью графических оболочек интуитивно понятно.

Система 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 - задание для поиска альтернативный набор страниц справочника, находящийся на системе с указанным именем.

Допустим мне необходимо получить информацию о команде shutdown. Для этого я введу “man shutdown” и на экране будут выведены страницы руководства по shutdown (рис. 7).



Рис. 7 Результат выполнения команды “man shutdown”

Нужно учесть что, не на все команды есть руководство. Некоторые страницы руководства еще просто не написаны.

Сама по себе комаyда man не занимается отображение страниц помощи на экран. Она находит среди всех страниц помощи нужную, форматирует её и передает программе постраничного просмотра, используемой в системе по умолчанию. Обычно в GNU/Linux используется less.



Управление командой less:

Команда

Действие

+,

Следующая строка

+
,

Предыдущая строка

+,


Страница вниз

+,


Страница вверх



Следующая страница

строка

Поиск подстроки вниз

строка

Поиск подстроки вверх



Найти следующее вхождение искомой подстроки



Выход

В Linux имеется множество файлов и команд с одинаковыми именами. Что бы можно было получить именно то, что требуется пользователю, в систему man ввели разделение по секция, что позволяет не путать, к примеру /etc/passwd и /bin/passwd.
Описание секций:


Секция

Информация

1

Описание команд пользователя

2

Описание системных вызовов

3

Описание библиотек

4

Информация о файлах устройств и иных специальных файлах

5

Форматы конфигурационных файлов

6

Помощь по играм

7

Макросы, кодировки, информация для программистов

8

Команды системного администрирования

9

Процедуры и функции ядра

Приведем пример вызова команды man с указанием секции для passwd. Результат команды man 1 passwd и man 5 passwd отображены на рисунках 8 и 9 соответственно.

Рис. 8 Результат команды man 1 passwd



Рис. 9 Результат команды man 5 passwd

Справочная страница содержит следующие типовые разделы:


NAME

Имя команды (или объекта, для которого вызвана справка)

SYNOPSIS

Синтаксис вызова с перечнем допустимых опций

DESCRIPTION

Подробное описание команды

OPTIONS

Перечень и описание допустимых опций

ENVIRONMENT

Аспекты взаимодействия со средой, окружением

SEE ALSO

Ссылки на смежные страницы

AUTHORS

Сведения об авторах программы

BUGS

Известные проблемы и обнаруженные ошибки

Пути поиска страниц руководства

Для поиска страниц руководства, man использует составной метод, основанный на опциях вызова и переменных окружения, файле настроек /etc/man.conf, а также некоторых встроенных соглашениях и эвристике. Прежде всего, если имя аргумента передаваемого man содержит наклонную черту (/), man принимает его как указание на файл, и не осуществляет поиск. Однако в обычном случае, где имя не включает наклонной черты, man ищет в ряде каталогов файл, содержащий страницы руководства для указанной темы.

Если вы зададите опцию -M список_путей, то список_путей это разделённый двоеточиями список каталогов в которых man осуществит поиск. Если вы не укажите -M, но установите переменную окружения MANPATH, man использует значение переменной как список каталогов для поиска. Если вы не определите списка особых путей поиска с помощью -M или MANPATH, man осуществит поиск по своему списку путей, основанному на содержании файла конфигурации /etc/man.conf. Каталоги, заявленные в переменной MANPATH в конфигурационном файле, включаются в пути поиска.

С помощью команды manpath определим пути поиска страниц руководства (рис. 10).



Рис. 10 Пути поиска страниц



Гипертекстовая справочная система info.

Организация справочной системы info — иерархическая, вся документация сведена в единое дерево, в котором документы (так называемые ноды) являются узлами. Текст каждой ноды может содержать гиперссылки на другие ноды.

Опробуем вызов команды info для команды shutdown, прописав info shutdown. Результат отображен на рисунке 11.

Рис. 11 Результат выполнения команды info shutdown

На рисунке 11 видно, что командой info была вызвана страница из набора manpages. На верхней строке отмечено название узла иерархического дерева (node) shutdown.

Команды apropos, whatis

apropos, whatis - поиск в базе данных по ключевому слову. Эти команды имеют следующий синтаксис:

apropos ключевое слово



whatis ключевое слово

Команда аpropos ищет установленные в файлах базы данных краткие описания системных команд по ключевому слову и выводит результат на стандартный вывод. Whatis показывает описание только для полного имени команды. Опробуем эти команды на практике.

С помощью команды apropos найдем описание команды, соответствующей строке passwd. Результат отображен на рисунке 12

.

Рис. 12 Результат команды apropos passwd


Произведем аналогичный поиск, но уже по полному названию команды при помощи whatis, прописав whatis passwd. Результат отображен на рисунке 13.

Рис. 13 Результат команды whatis passwd


2.2 Файлы HOW-TO

Значительное количество информации находится в уже установленной системе (при инсталляции по умолчанию) в виде так называемых страниц man, info и howto. Страницы howto - это небольшие текстовые файлы, в которых описана последовательность действий для выполнения конкретной задачи (например настройки модема или сетевой платы). В разных дистрибутивах howto располагаются в разных местах, скорее всего это будут /usr/doc, /usr/local/doc или /usr/share/doc.

В моем случае, произведя поиск я не обнаружил файлов HOW-To.


  1. Управление бюджетами пользователей.

В режиме суперпользователя выполнить команды 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 зашифрованные пароли групп


    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. Желательно идентификаторы назначать не произвольным образом, а системно. Например, выделить определенный интервал (1000…1100) под одну группу пользователей, а еще один (2000…2100) — под другую группу. В каждом диапазоне назначать идентификаторы последовательно. Это опять же упростит администрирование и позволит, бегло взглянув на список процессов, сразу же определить кто чем занимается.

Идентификатор группы (Group ID) — числовой идентификатор первичной группы пользователя (GID). Помимо первичной группы пользователь может входить или не входить в состав разных групп, но в первичную группу (native group) он входит всегда. В различных дистрибутивах это выглядит по-разному. Идентификатор группы 0 соответствует группе root.

Реальное имя пользователя (full name) — обычно представляет собой реальное (фактическое) имя пользователя, например, ivan ivanov. Может содержать и другие данные: номер телефона и т.п. Эти сведения используются в информационных целях.

Домашний каталог пользователя (home dir) — в качестве домашнего каталога обычно используется каталог /home/<имя_пользователя> (например, /home/andrew). Без особых причин не рекомендуется изменять такую организацию домашних каталогов.

Оболочка пользователя (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:107::/var/run/dbus:/bin/false

avahi-autoipd:x:103:110:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false

avahi:x:104:111:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false

couchdb:x:105:113:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash

speech-dispatcher:x:106:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh

usbmux:x:107:46:usbmux daemon,,,:/home/usbmux:/bin/false

haldaemon:x:108:114:Hardware abstraction layer,,,:/var/run/hald:/bin/false

kernoops:x:109:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false

pulse:x:110:115:PulseAudio daemon,,,:/var/run/pulse:/bin/false

rtkit:x:111:117:RealtimeKit,,,:/proc:/bin/false

saned:x:112:118::/home/saned:/bin/false

hplip:x:113:7:HPLIP system user,,,:/var/run/hplip:/bin/false

gdm:x:114:120:Gnome Display Manager:/var/lib/gdm:/bin/false

timidity:x:115:124:TiMidity++ MIDI sequencer service:/etc/timidity:/bin/false

andrew:x:1000:1000:Andrew,,,:/home/andrew:/bin/bash

vboxadd:x:999:1::/var/run/vboxadd:/bin/false


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

/root и командный интерпретатор пользователя - /bin/bash. Для пользователя Andrew UID=1000, GID=1000, указанно реальное имя пользователя – Andrew, домашний каталог - /home/andrew/ и используемый интерпретатор используемый по умолчанию /bin/bash.

Обычно вместо паролей ставится символ “x”, а пароли хранятся отдельно в файле `` /etc/shadow'', в котором хранятся зашифрованные пароли и некоторая дополнительная информация о паролях. Файл /etc/shadow доступен для чтения только root, что повышает защиту. Фиктивный интерпретатор команд (например, /bin/false) не позволит кому-либо зарегистрироваться под таким псевдоименем.
/etc/shadow

Файл /etc/shadow доступен для чтения только пользователю root и предназначен для хранения зашифрованных паролей. В нем также содержится учетная информация, которая отсутствует в файле /etc/passwd. При использовании скрытых паролей соответствующие поля в файле /etc/passwd всегда содержат символ «х». Оба файла необходимо сопровождать независимо друг от друга (или использовать команду

useradd для автоматического управления файлами). Как и /etc/passwd, файл /etc/shadow содержит одну строку для каждого пользователя. Каждая строка состоит из 9 полей, разделенных двоеточиями:


  1. имя пользователя;

  2. зашифрованный пароль;

  3. количество дней, прошедших с 1.01.1970 до последней смены пароля;

  4. число дней до смены пароля (0 - может быть сменен всегда);

  5. число дней, после которых пароль долже быть сменен (99999 - может не меняться вообще никогда)

  6. число дней, в течение которых пользователь получает предупреждения о необходимости пароль сменить;

  7. число дней после окончания действия пароля, когда еще можно работать, после данного срока аккаун будет заблокирован;

  8. число дней, начиная с 1.01.1970, после которых пароль будет заблокирован;

  9. зарезервировано

Пример содержание моего /etc/shadow:

root:$6$hSFXSl/F$KXq2TJaWImCk5ZrTmD01ftj3T7q/grcc97vuAivbkGfb4XHzlCu7t8Zx.MjiNn2Sdn7HRq6HSezb3qzFwx65D.:15841:0:99999:7:::

daemon:*:14726:0:99999:7:::

bin:*:14726:0:99999:7:::

sys:*:14726:0:99999:7:::

sync:*:14726:0:99999:7:::

games:*:14726:0:99999:7:::

man:*:14726:0:99999:7:::

lp:*:14726:0:99999:7:::

mail:*:14726:0:99999:7:::

news:*:14726:0:99999:7:::

uucp:*:14726:0:99999:7:::

proxy:*:14726:0:99999:7:::

www-data:*:14726:0:99999:7:::

backup:*:14726:0:99999:7:::

list:*:14726:0:99999:7:::

irc:*:14726:0:99999:7:::

gnats:*:14726:0:99999:7:::

nobody:*:14726:0:99999:7:::

libuuid:!:14726:0:99999:7:::

syslog:*:14726:0:99999:7:::

messagebus:*:14726:0:99999:7:::

avahi-autoipd:*:14726:0:99999:7:::

avahi:*:14726:0:99999:7:::

couchdb:*:14726:0:99999:7:::

speech-dispatcher:!:14726:0:99999:7:::

usbmux:*:14726:0:99999:7:::

haldaemon:*:14726:0:99999:7:::

kernoops:*:14726:0:99999:7:::

pulse:*:14726:0:99999:7:::

rtkit:*:14726:0:99999:7:::

saned:*:14726:0:99999:7:::

hplip:*:14726:0:99999:7:::

gdm:*:14726:0:99999:7:::

timidity:*:14764:0:99999:7:::

andrew:$6$Sd8goBZv$RQwNkbVwBYDcX.kwcUEgI84/jnfP5PG71e29H8nHJxPp52RkJ7mlR96zlmmp5dD29OtvMNlWZCjcdvJ/EVSwK/:15817:0:99999:7:::

vboxadd:!:15856::::::


У пользователей root и andrew в поле зашифрованный пароль находится большая последовательность различных символов. Это и есть мой зашифрованный пароль. Зашифрованный пароль идентичен тому, который ранее хранился в файле /etc/passwd; отображается пароль зашифрованный при помощи алгоритма SHA-512, об этом на говорит префикс $6$
Состав домашнего каталога пользователя

/home - В этом каталоге размещены домашние каталоги пользователей. Linux является многопользовательской системой и каждому пользователю присваивается имя и уникальный каталог для персональных файлов. Файлы всех пользователей в Linux хранятся раздельно, у каждого пользователя есть собственный домашний каталог, в котором он может хранить свои данные. Доступ других пользователей к домашнему каталогу пользователя может быть ограничен. Информация о домашнем каталоге обязательно должна присутствовать в учётной записи, потому что именно с него начинает работу пользователь, зарегистрировавшийся в системе.

Домашний каталог содержит все пользовательские файлы : настройки, файлы конфигурации программ, документы, данные, кэш браузера, почту, и т.д.  Пользователь может создать подкаталоги в своем домашнем каталоге, организованные по своему усмотрению.  Другие пользователи не могут читать эти файлы или писать в этот домашний каталог без разрешения пользователя .


Профайл пользователей /etc/skel/profile

Когда создается домашний каталог для нового пользователя, он инициализируется файлами из каталога /etc/skel. Администратор системы может создавать файлы в /etc/skel , которые будут обеспечивать хорошую заданную по умолчанию среду для пользователей. Например, он мог бы создавать конфигурацию /etc/skel/.profile, которая устанавливает системную переменную EDITOR равной некоторому редактору, который является дружественным к новым пользователям.




3.2 В режиме суперпользователя выполнить команды who, id, logname, finger.

В качестве привилегированного пользователя мы можем управлять процессом регистрации пользователей в системе, в частности вводить и удалять бюджеты пользователей, а также группы. Бюджет пользователя (user account) - это некоторая информация о пользователе, которая позволяет ему работать в системе. Обычно это имя, пароль, группа, к которой принадлежит пользователь, идентификаторы пользователя и группы и т.д. Кроме того, привилегированный пользователь имеет доступ к системным файлам инициализации, позволяющим конфигурировать все пользовательские shell, и осуществляет контроль над стандартными файлами инициализации, которые копируются в бюджет при его создании. С их помощью можно выполнять начальную конфигурацию бюджетов пользователей.



Команда who

Команда who сообщает о том, какие пользователи в настоящий момент работают в системе. Указывается устройство подключения, время начала сеанса, имя компьютера (если это удаленное подключение), длительность простоя, а также принимаются ли сообщения утилит write и talk .

Синтаксис: who [ОПЦИИ]... [ФАЙЛ]

Если не указаны никакие опции, выводит листинг со следующей информацией о каждом пользователе вошедшем в настоящее время в систему:

• имя

• терминал



• время регистрации

• имя дистанционного (удалённого) узла (localhost - для локально или X-дисплей (:0)

Опции:


  • -b, --boot - время последней загрузки системы

  • -d, --dead - выводит спящие процессы

  • -H, --heading - выводит строку заголовка (шапку) для столбцов таблицы листинга

  • -i, --idle - в листинге, после времени входа в систему, указывает количество часов:минут бездействия пользователя в его терминале. Точка (.) в этом поле означает, что пользователь был активен в течение последней минуты, а слово old (старый) - бездействовал более суток (опция -u).

  • -l, --login - выводит системные процессы, ожидающие регистрации пользователей (т.е. свободные терминалы)

  • --lookup - пытается узаконить (канонизировать) имена узлов, найденные через DNS

  • -m - выводит информацию о пользователе, связанном с текущим терминалом (о себе). Синоним команды whoami.

  • -p, --process - выводит активные процессы, порожденные программой init

  • -q, --count - выводит только имена и количество зарегистрировавшихся пользователей

  • -r, --runlevel - выводит информацию о текущем уровне выполнения (runlevel) для пользователя в системе

  • -s, --short - выводит только имя, терминал, время регистрации, имя дистанционного (удалённого) узла (по умолчанию)

  • -t, --time - если есть, то выводит информацию о последнем изменении времени в системе (см. информацию о команде hwclock)

  • -a, --all эквивалент -b -d --login -p -r -t -T –u

  • -T, -w, --mesg добавлять статус приема сообщений как +, - или ?

  • -u, --users перечислить подключенных пользователей

Воспользуемся командой who без указания опций для вывода пользователей работающих в системе в данный момент. Результат выполнения отображен на рисунке 14.

Рис. 14 Результат выполнения команды who без указания опций.

Воспользуемся командой who указав опцию –b для вывода информации о времени последней загрузки системы. Результат выполнения отображен на рисунке 15

.

Рис. 15 Время последней загрузки системы

Как правило, команда who получает свои входные данные из файла /var/run/utmp. Аргумент ФАЙЛ может задать другой файл с данными, например, /var/log/wtmp с информацией о завершенных сессиях результат выполнения команды who с аргументом /var/log/wtmp :

andrew@andrew-laptop:~$ who /var/log/wtmp



root pts/1 2010-04-29 20:32 (:2.0)

root pts/3 2010-04-30 01:15 (:2.0)

root pts/1 2010-05-05 21:50 (:2.0)

root pts/1 2010-05-05 21:50 (:2.0)

root pts/1 2010-05-06 00:23 (:2.0)

root pts/1 2010-06-04 12:56 (:2.0)

root pts/1 2010-06-04 12:59 (:2.0)

andrew tty7 2013-04-22 11:33 (:0)

andrew pts/0 2013-04-22 11:36 (:0.0)

andrew tty7 2013-04-22 16:23 (:0)

andrew pts/0 2013-04-22 16:24 (:0.0)

andrew tty7 2013-05-08 16:26 (:0)

andrew tty1 2013-05-08 16:28

andrew tty1 2013-05-08 16:28

andrew tty2 2013-05-08 16:28

andrew tty2 2013-05-08 16:28

andrew tty4 2013-05-08 16:30

andrew tty4 2013-05-08 16:30

andrew tty7 2013-05-15 15:17 (:0)

andrew tty1 2013-05-15 15:19

andrew tty1 2013-05-15 15:19

andrew tty7 2013-05-16 18:31 (:0)

andrew tty7 2013-05-16 18:39 (:0)

andrew tty1 2013-05-16 18:44

andrew tty1 2013-05-16 18:44

andrew tty7 2013-05-16 18:47 (:0)

andrew pts/0 2013-05-16 18:48 (:0.0)

andrew tty7 2013-05-16 18:58 (:0)

andrew pts/0 2013-05-16 19:01 (:0.0)

andrew pts/1 2013-05-16 19:11 (:0.0)

andrew pts/2 2013-05-16 19:11 (:0.0)

andrew pts/3 2013-05-16 19:11 (:0.0)

andrew tty1 2013-05-16 19:18

andrew tty1 2013-05-16 19:18

andrew tty1 2013-05-16 20:04

andrew tty1 2013-05-16 20:04

root tty2 2013-05-16 20:27

root tty2 2013-05-16 20:27

andrew tty2 2013-05-16 20:31

andrew tty2 2013-05-16 20:31

root tty1 2013-05-16 20:31

root tty1 2013-05-16 20:31

andrew pts/0 2013-05-16 21:01 (:0.0)

andrew tty7 2013-05-31 10:10 (:0)

andrew tty1 2013-05-31 10:11

andrew tty1 2013-05-31 10:11

andrew pts/0 2013-05-31 10:12 (:0.0)

andrew pts/0 2013-05-31 11:08 (:0.0)

andrew tty7 2013-05-31 11:27 (:0)

andrew pts/0 2013-05-31 11:28 (:0.0)

andrew tty7 2013-05-31 14:20 (:0)

andrew pts/0 2013-05-31 14:21 (:0.0)

andrew tty7 2013-05-31 15:24 (:0)

andrew pts/0 2013-05-31 15:25 (:0.0)

andrew tty7 2013-05-31 15:46 (:0)

andrew pts/0 2013-05-31 15:47 (:0.0)

andrew pts/1 2013-05-31 15:56 (:0.0)

andrew tty7 2013-05-31 16:03 (:0)

andrew tty7 2013-05-31 17:10 (:0)

andrew pts/0 2013-05-31 17:11 (:0.0)

andrew tty1 2013-05-31 19:31

andrew tty1 2013-05-31 19:31

root tty1 2013-05-31 19:40

root tty1 2013-05-31 19:40

andrew tty7 2013-05-31 19:43 (:0)

root tty1 2013-05-31 19:44

root tty1 2013-05-31 19:44

andrew pts/0 2013-05-31 19:47 (:0.0)



Команда 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 для пользователя Andrew и пользователя root. Для этого набираем id Andrew и id root. Результат выполнения команды отображен на рисунке 16.

Рис. 16 Результат выполнения команд id Andrew и id root



Команда logname

Команда logname выводит имя текущего пользователя. Для нахождения имени используется файл /var/run/utmp. Если в этом файле отсутствует элемент для вызвавшего процесса, выводится сообщение об ошибке и программа завершается с кодом 1.

Синтаксис:

logname [OPTION]

Опции:


  • --help - выводит описание опций программы и завершает её работу

  • --version - выводит информацию о версии программы и завершает её работу

Воспользуемся командой logname для вывода имени текущего пользователя. Результат выполнения программы отображен на рисунке 17.

Рис. 17 Результат выполнения команды 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.
Опция -l является единственной, которая может быть передана удалённой машине. Если в домашнем каталоге пользователя присутствует файл .nofinger и команда не была запущена с привилегиями суперпользователя, finger ведёт себя так, как если бы такой пользователь не существовал. В необязательном файле конфигурации finger.conf могут быть указаны псевдонимы. 
Поскольку finger вызывается из fingerd, псевдонимы будут работать как для локальных запросов, так и для сетевых.

Воспользуемся командой finger и узнаем информацию о домашнем каталоге, имени пользователя, shell. Результат выполнения команды finger отображен на рисунке 18.



Рис. 18 Результат выполнения команды finger –l



3.3 Создать новый бюджет командой adduser

Добавить учетную запись пользователя можно при помощи утилиты adduser. Создадим с помощью adduser обычного пользователя.

Вводим в командной строке от имени суперпользователя: adduser user1. Далее заполняем необходимую информацию в интерактивном режиме. Процесс создания пользователя user1 отображен на рисунке 19.

Рис. 19 Процесс создания пользователя

В результате происходит добавление нового пользователя. Ему присваивается UID = 1001, GID=1002, создается домашний каталог /home/user, создается пароль, добавляется другая информация.

Результат создания отображен на рисунке 20.



Рис. 20 Результат создания нового пользователя user

Также можно произвести удаление учетной записи. Для этого нужно прописать userdel и имя пользователя. При этом необходимо убедиться, что пользователь в этот момент не зарегистрирован в системе и что нет процессов, запущенных от его имени. Необходимо помнить, что удаление учетной записи происходит безвозвратно. Пропишем userdel –r user. Параметр –r указывает на необходимость удалить домашний каталог и почтовый ящик. Результат удаления пользователя отображен на рисунке 21.

Рис. 21 Результат удаления пользователя user



  1. Работа с файловой системой.

Ознакомиться с командами mount, umount, df, mkfs, fsck.

С помощью команды df ознакомиться с разделами винчестера.

Выполнить монтирование файловой системы на дискете. Изучить описание автоматически монтируемых файловых систем в файле /etc/fstab.

Простое описание системы UNIX, также применимое к Linux, заключается в следующем:

"В системе UNIX, все есть файл; а если что-то не файл, то это процесс". Это утверждение правда, т.к. существуют специальные файлы, которые больше, чем просто файлы (именованные каналы и сокеты, например), но для простоты допускают обобщение и говорят, что все есть файл. Система Linux, как и UNIX, не делает никакой разницы между файлом и каталогом, так как каталог - это просто файл, содержащий имена других файлов. Программы, службы, тексты, изображения и т.д. — все это файлы. В системе Linux устройства ввода и вывода и вообще все устройства считаются файлами.
Виды файлов

Большинство файлов просто файлы, называемые обычными файлами; они содержат обычные данные, например, текстовые файлы, исполняемые файлы (или программы), файлы ввода или вывода программ и т.д.

Хотя предположение, что все, что мы обнаруживаем в системе Linux представляет собой файл достаточно верное, есть некоторые особенности.

Существуют следующие виды файлов:



  • Каталоги. Каталоги - это файлы, в качестве данных которых выступают списки других файлов и каталогов. Именно в данных каталога осуществляется связь имени файла (словесного обозначения для людей) с его индексным дескриптором (истинным именем-числом). Отсюда следует, что один и тот же файл может существовать под разными именами и/или в разных каталогах: все имена будут связаны с одним и тем же индексным дескриптором (механизм жестких ссылок). Также следует, что файлы всегда содержаться в каталогах, иначе просто недоступны.

  • Обычные файлы. Сюда относятся все файлы с данными, играющими роль ценной информации сами по себе. Linux все-равно текстовый перед ней файл или бинарный. В любом случае это будет обычный файл.

  • Специальные файлы: механизм использования ввода-вывода. Большинство специальных файлов находятся в /dev. Они используются для обозначения физических устройств компьютера. Например, файл /dev/console - соответствующий консольному терминалу. Все, что выводится в файл /dev/console, будет просто появляться на экране терминала. При попытке чтения из файла /dev/console, вы будете получать то, что вводится с клавиатуры.

Специальные файлы бывают двух типов:

    1. блочные - запись и чтение допускаются только блоками. Например, разделы дисков с файловой системой являются таковыми.

    2. Символьные (бесструктурные, сырые, row) - можно читать и писать отдельными байтами. К ним относятся терминалы, неформатированные диски и разделы дисков без файловой системы.

Понятия "размер" у специального файла не существует. Ведь этот файл обозначает физическое устройство. Фактически, это ссылка на соответствующий драйвер. Вместо длины, команда ls показывает для таких файлов два числа: "мажорный" и "минорный" номера устройств. Будем считать для ясности, что "мажор" это порядковый номер драйвера устройства, а "минор" - внутренний номер устройства в таблице обслуживающего его драйвера.



  • Ссылки: механизм обеспечения видимости файла или каталога во множестве частей файлового дерева системы.

  • (Домены) сокеты: особый тип файла, подобный сокетам TCP/IP, обеспечивающий взаимодействие в сети процессов, защищенных контролем файловой системы на доступ.

  • Именованные каналы: действуют более или менее похоже на сокеты и обеспечивают способ коммуникации между процессами без использования правил поведения сетевых сокетов.


Разделы

Может показаться странным, что Linux использует более чем один раздел на одном диске, даже когда выполняется стандартная процедура установки; для этого должно быть какое-то объяснение.

Одной из целей разделения на разделы является повышение сохранности данных на случай непредвиденных происшествий. Путем разделения жесткого диска на разделы, данные могут быть сгруппированы и разобщены. Когда происходит авария, повреждаются данные только одного раздела, а данные других разделов скорее всего уцелеют.

Этот принцип датируется теми днями, когда у Linux не было журналируемой файловой системы и сбои питания могли привести к катастрофе. По причинам обеспечения надежности и безопасности использование разделов осталось, так нарушение одной части системы, автоматически не означает, что весь компьютер в опасности. В настоящее время это самая важная причина для разметки.


Схемы и типы разделения

Есть два вида основных разделов в системе Linux:



  • раздел с данными: обычные данные системы Linux, включая корневой раздел, содержащий все данные для старта и запуска системы; и

  • раздел подкачки: расширение физической памяти компьютера, представляет собой дополнительную память на жестком диске.

Большинство систем содержат корневой раздел, один или несколько разделов с данными, и один или несколько разделов подкачки. Системы в смешанных средах, могут содержать разделы данных других систем, такие как разделы файловых системам FAT или VFAT с данными MS Windows.

Стандартный корневого раздела (обозначается одиночной косой чертой, /), составляет около 100-500 МБ и содержит системные конфигурационные файлы, большинство основных команд и серверные программы, системные библиотеки, некоторое временное пространство и домашний каталог пользователя с правами администратора.

Пространство для подкачки (обозначается как swap) доступно только для самой системы, и скрыто из виду при обычной работе. Раздел подкачки - это механизм, который обеспечивает, как и на обычных системах UNIX, продолжение вашей работы, что бы ни случилось. Из-за этой дополнительной памяти в Linux вы практически никогда не увидите раздражающих сообщений типа "Недостаточно памяти, пожалуйста закройте сначала некоторые приложения и попробуйте еще раз". Процедура подкачки или виртуальной памяти давно принята операционными системами уже вне мира UNIX.

Во многих дистрибутивах ядро находится на отдельном разделе, поскольку это самый важный файл системы. Если это так, вы увидите, что у вас также есть раздел /boot, содержащий ваше ядро (ядра) и сопутствующие файлы данных.

Остаток жесткого диска(ов) обычно делится на разделы данных, хотя может быть, что все не критичные для системы данные будут находиться на одном разделе, например, при выполнении стандартной установки рабочей станции. Когда некритичные данных разделяется на несколько разделов, то обычно это происходит по следующему принципу:



Каталог: files -> stud
stud -> Отчет по лабораторной работе №1
stud -> Лабораторная работа №1 «Сетевое взаимодействие Windows и Linux» студент группы 10-в-2
stud -> Лабораторная работа №3 по дисциплине: «Операционные системы» Работа пользователя в Linux
stud -> Лабораторная работа №2 по дисциплине: «Программное обеспечение вычислительных сетей» «Установка и конфигурирование ос windows 2003 Server»
stud -> 1. Сетевые модели организации пользователей: модель рабочих групп и доменная модель. Доверительные отношения
stud -> Логика развития и ключевые свойства версий ос windows 3x, 9x, nt, 2000, xp
stud -> Практическая работа №1 «Сетевые свойства и конфигурирование Windows 7» студент группы 10-в-1 Маясов Д. А проверил
stud -> «Сетевые свойства и конфигурирование Windows 7»
stud -> Server-based (Сеть на базе выделенного сервера)


Поделитесь с Вашими друзьями:
  1   2   3   4   5


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал