Механизм защиты файлов. Права и полномочия



ЛАБОРАТОРНАЯ РАБОТА № 4

«Изучение основных возможностей ОС UNIX»

Регистрация в ОС UNIX

 

При перезагрузке персонального компьютера с установленной на нём ОС RHL 4.1 появляется сообщение “LILO boot:”. Эту подсказку выдает загрузчик ОС (Linux Loader) для ввода типа загружаемой ОС. По клавише <TAB> можно выбрать желаемый тип: dos или linux. По умолчанию, если не нажато никаких клавиш, осуществляется загрузка ОС RHL, примерно через пять секунд.

Процесс загрузки UNIX достаточно сложен и длителен, но через некоторое время появится приглашение на ввод имени пользователя: “DarkStar login:”. Первое слово “DarkStar” определяет имя машины, на которой вы собираетесь работать, поэтому для разных компьютеров оно будет различно, а может и вообще отсутствовать. В ответ на это приглашение нужно ввести свое имя, которое вам выделил администратор сети. Существует несколько стандартных имен, не требующих пароля. Попробуйте: student, anonymous или guest. Далее в ответ на запрос пароля (password) введите свой пароль или, если имя не требует пароля, просто нажмите клавишу <ENTER>.

В случае удачной регистрации UNIX выдает подсказку (промптер) для ввода команд. Подсказка, как правило, имеет вид “$”. Иногда впереди этого символа может размещаться некоторая информация, например, имя текущего каталога, пользователя или компьютера, дата или время и т.п. Для администратора сети с именем root (привилегированный пользователь) подсказка ОС UNIX имеет вид “#”. После появления символа-подсказки, ОС готова к обработке любых команд, вводимых пользователем с консоли.

Системная консоль – это монитор и клавиатура, связанные непосредственно с системой. (Поскольку UNIX – многопользовательская система, Вы можете иметь дополнительные терминалы, связанные через последовательные порты с вашей системой, но они не будут консолями). Linux, как и некоторые другие версии UNIX, обеспечивает доступ к виртуальным консолям (или VC), которые позволяют войти в систему под несколькими именами в одно и тоже время.

Для демонстрации этого войдите в систему (как было показано ранее). Теперь нажмите alt-F2. Вы должны снова увидеть подсказку login:, то есть перед Вами вторая виртуальная консоль, а Вы вошли через первую. Чтобы переключиться обратно на первую VC, нажмите alt-F1. Вы снова на первой консоли. Возможно обеспечить работу с 12-ю VC – по одной на каждую функциональную клавишу. Использование VC может быть очень эффективным – Вы можете работать на нескольких VC одновременно. В то время как использование виртуальных консолей ограничено (кроме прочего, в каждый момент времени можно видеть только одну виртуальную консоль), оно дает представление о многопользовательских возможностях UNIX. Пока Вы работаете на VC #1, Вы можете переключиться на VC #2 и начать работу над чем-то другим.

 

Что происходит при входе в систему

В этом пункте будут описаны стандартные операции, выполняемые UNIX при загрузке. Некоторые термины здесь могут быть сразу не совсем понятными, поэтому при первом чтении можно пропустить этот пункт, но обязательно вернуться к нему после прочтения всей методической работы.

Системные входные процедуры содержат команды, которые устанавливают среду пользователя. Системные входные процедуры исполняются раньше, чем локальная входная процедура пользователя.

Локальные входные процедуры могут отменять или модифицировать системные значения по умолчанию для индивидуальных пользователей. При добавлении новых пользователей в систему администратор должен быть уверен, что этот пользователь имеет локальную входную процедуру. В UNIX имеются четыре локальные входные процедуры, которые можно скопировать в начальный каталог пользователя: /etc/skel/.profile

/etc/skel/.login

/etc/skel/.cshrc

/etc/skel/.exrc

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

При входе в систему нового пользователя UNIX должен прежде всего выполнить ряд шагов для инициализации своей среды:

1. Shell (оболочка или ядро UNIX) запускает соответствующую системную входную процедуру, которая инициализирует среду пользователя. Системные входные процедуры определяют среду по умолчанию и могут быть настроены системным администратором.

 

Используемый Shell Системная входная процедура
Борна-Bourne (/usr/bin/sh) /etc/profile
Корна-Коrn (/usr/bin/ksh) /etc/profile
Ограниченный (/usr/bin/rsh, /usr/bin/rksh) /etc/profile
С (/usr/bin/csh) /etc/csh.login

 

Данные процедуры определяют и экспортируют для shell'a используемые переменные среды PATH, TZ и TERM. В этих процедурах исходными файлами являются /etc/MANPATH и /etc/TIMEZONE. Так как системные входные процедуры исполняются для всех пользователей при их входе в систему, системный администратор может модифицировать их так, чтобы установить для всех пользователей общие значения по умолчанию. Это полезно, когда необходимо быть уверенным в том, что каждый пользователь выполняет важные команды при входе в систему.

2. Выводит содержимое файлов /etc/copyright и /etc/motd. В последнем файле /etc/motd (Message Of The Day – сообщения дня) размещаются сообщения, о которых должен знать каждый пользователь. Например, если администратор решит когда-либо выгрузить систему для профилактических работ, он помещает сообщение в файл /etc/motd, позволяющее пользователю узнать, когда система будет выгружена, так чтобы он мог соответствующим образом планировать свою работу. Содержимое файла /etc/motd выводится каждый раз, когда пользователь входит в систему. Файлы /etc/profile и /etc/csh.login, выполняющиеся автоматически при начальном входе в систему, содержат команду cat /etc/motd (вывести на экран содержимое соответствующего файла).

3. Информирует пользователя о непрочитанных новостях, выводя приглашение в виде: news: имя_файла_новостей.

4. Shell запускает локальные входные процедуры пользователя (если они существуют) из начального каталога пользователя (переменная $HOME):

 

Используемый Shell Локальная входная процедура
Борна-Bourne (/usr/bin/sh) .profile
Корна-Коrn (/usr/bin/ksh) .profile
Ограниченный (/usr/bin/rsh, /usr/bin/rksh) .profile
С (/usr/bin/csh) .login

 

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

Кроме перечисленных выше процедур, Коrn Shell и С Shell могут иметь (и обычно имеют) дополнительные локальные входные процедуры:

• Кorn Shell – если переменная среды ENV определена, Коrn shell исполняет файл, заданный ею (обычно это .kshrc); файл исполняется каждый раз, когда запускается новый Кorn Shell. Многие программы (например, vi и mailx) позволяют пользователю запускать shell из этих программ; это называется выходом в shell. Файл $ENV перезапускается при каждом выходе в shell, тогда как .profile запускается только при входе в систему.

• С Shell – каждый раз, когда запускается новый С shell, выполняется файл .cshrc. Это аналогично тому, как работает файл $ENV для КornShell'a. Файл .login запускается только при входе в систему, тогда как файл .cshrc исполняется для каждого нового С shell.

5. Как только вся инициализация выполнена, shell выводит приглашение и ждет ввода от пользователя.

 

Основные команды ОС UNIX

 

Прежде всего необходимо отметить, что UNIX является системой, чувствительной к регистру букв. В основном, все команды вводятся строчными (маленькими) буквами. Если регистр букв будет неверным, UNIX не сможет обработать введенную команду.

В UNIX большинство команд – это исполняемые файлы. Однако есть и встроенные (внутренние) команды, для которых не требуется наличие исполняемых файлов. Их перечень приведен в приложении 2.

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

Опции или флаги команд обычно начинаются с ‘-’. Во многих случаях несколько однобуквенных опций могут следовать за одним минусом. Например, вместо использования ls -l -F можно использовать ls -lF.

Вместо перечисления всех возможных опций каждой команды мы будем говорить только о тех, которые наиболее полезны или важны. Действительно, каждая из этих команд имеет множество опций (большинство из которых никогда не используется). Вы можете для каждой команды с помощью man посмотреть все возможные опции. Кроме этого можно использовать опцию «-help» после имени команды для выдачи на экран краткой справки по соответствующей команде.

Многие из команд берут список файлов или каталогов как аргументы, обозначенные как “<file1>...<fileN>”. Например, команда cp берет в качестве аргументов список файлов, которые надо копировать, за которыми следует имя целевого файла  или каталога. При копировании нескольких файлов в качестве целевого может выступать только каталог.

Cd

Изменяет текущий рабочий каталог.

Синтаксис: cd <directory>.

Аргумент <directory> – это каталог, в который необходимо перейти (’.’ ссылается на текущий каталог, ‘..’ – на родительский каталог).

Пример: cd ../foo переводит из текущего каталога в ./foo.

Ls

Выдает информацию о файлах в каталоге.

Синтаксис: ls <file1>... <fileN>.

Аргументы<file1> ... <fileN> – это имена файлов или каталогов, информацию про которые надо выдать. Наиболее часто используемые опции: -F (для представления информации о типах файлов), и -l (выдает в длинном (long) формате информацию о размерах файлов, владельцах, правах доступа и т.д.

Пример: ls -lF /home/larry выдаст содержимое каталога /home/larry.

Cp

Копирует файл(ы) в файл или каталог.

Синтаксис: cp <file1>...<fileN><destination>.

Аргументы <file1> ...<fileN> – это имена копируемых файлов, а <destination> файл или каталог, в который копируют.

Пример: cp ../frog joe копирует файл ../frog в файл или каталог joe.

Mv

Перемещает файл(ы) в другой файл или каталог. Эта команда не эквивалентна копированию с последующим уничтожением оригинала. Она может быть использована для переименования файлов, как команда RENAME из MS-DOS.

Синтаксис: mv<file1>...<fileN><destination>.

Аргументы <file1>...<fileN> – это имена перемещаемых файлов, а <destination> имя файла или каталога, в который перемещают.

Пример: mv../frog joe перемещает файл ../frog в файл или каталог joe.

Rm

Удаляет файлы. Когда в UNIX удаляются файлы, они невосстановимы.

Синтаксис: rm <file1>...<fileN>.

Аргументы<file1>...<fileN> – это имена удаляемых файлов.

Опции: -i потребует вашего подтверждения перед удалением файла.

Пример: rm -i /home/larry/joe /home/larry/frog удаляет файлы joe и frog в каталоге /home/larry.

Mkdir

Создает новые каталоги.

Синтаксис: mkdir <dir1>....<dirN>.

Аргументы <dir1>...<dirN> – это создаваемые каталоги.

Пример: mkdir /home/larry/test создает каталог test в каталоге /home/larry.

Rmdir

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

Синтаксис: rmdir <dir1>...<dirN>.

Аргументы <dir1>...<dirN> – это удаляемые каталоги.

Пример: rmdir /home/larry/papers удаляет каталог /home/larry/papers, если он пустой.

More

Выдает содержимое названных файлов поэкранно.

Синтаксис: more <file1>...<fileN>.

Аргументы <file1>...<fileN> – это отображаемые файлы.

Пример: more papers/history-final выводит файл papers/history-final.

Cat

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

Синтаксис: cat <file1>...<fileN>.

Аргументы <file1>...<fileN> – это выдаваемые файлы.

Пример: cat letters/from-mdw выдает на дисплей файл letters/from-mdw.

Echo

Выводит на экран аргументы.

Синтаксис: echo <arg1>...<argN>.

Аргументы <arg1>...<argN> – это выдаваемые на экран аргументы.

Пример: echo “Hello world” выдается экран “Hello world”.

Grep

Выдает все строки в названном файле(лах), которые содержат заданный образец.

Синтаксис: grep <pattern> <file1>...<fileN>.

Аргумент <pattern> – это образец (представленный регулярным выражением) и <file1>...<fileN> – файлы, в которых производится поиск.

Пример: grep loomer /etc/hosts выдаст все строки, в которых файл /etc/hosts, содержит образец ׂ“loomer”.

В приложении 1 приведен более подробный перечень основных команд UNIX и их краткое описание.

 

Механизм защиты файлов. Права и полномочия

 

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

Если ввести команду ls -al, на экран будет выведена информация о содержимом текущего каталога примерно в следующем виде:

drwxr-xr-x 1 staff 3237 Dec 20 12:04.

drwxr-xr-x 1 staff 4237 Dec 20 12:04..

-rw-r----- 1 petr 121437 Dec 20 11:04 file2

-rw-r----- 2 staff 2237 Dec 20 12:05 file3

Каждая строка содержит следующую информацию о файле:

код защиты файла;

счетчик числа ссылок на файл;

имя владельца файла;

длина файла;

дата и время создания;

собственно имя файла.

Структура кода защиты следующая:

-rwx rwx rwx

r – разрешение на доступ к файлу по чтению; если вместо символа r стоит символ -, то разрешения на доступ к файлу по чтению нет;

w – разрешение на доступ к файлу по записи; если вместо символа w стоит символ -, то разрешения на доступ к файлу по записи нет;

x – разрешение на доступ к файлу по выполнению; если вместо символа x стоит символ -, то разрешения на доступ к файлу по выполнению нет.

Для файлов, являющихся каталогами, код защиты имеет несколько иной смысл, чем для обычных файлов:

d – файл является каталогом; если вместо символа d стоит символ -, то это обычный файл;

r – разрешение осуществлять вывод на терминал содержимого каталога;

w – разрешение создавать файлы в каталоге и удалять из него;

x – разрешение на доступ к файлам, содержащимся в каталоге, и на установку каталога в качестве текущего каталога с помощью команды cd.

Изменить код защиты файла, владельцем которого Вы являетесь, можно с помощью команды chmode, изменить владельца файла – командой chown, изменить идентификатор группы файла – командой chgrp.


Дата добавления: 2021-01-21; просмотров: 76; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!