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

os

.pdf
Скачиваний:
15
Добавлен:
14.02.2015
Размер:
724.04 Кб
Скачать

Владелец может читать, изменять и запускать файл

Группа может читать

 

и запускать файл

Группа

 

- rwx r-x r-x 2 user-005 students 16384 Mar 10 13:39 1.txt

Владелец

Все остальные могут читать и запускать файл

Обычный файл

Рисунок 2.1 - Отображение сведений о владельце и правах доступа

Владельцем файла является user-005, группой является students (причём совсем не обязательно пользователь user-005 принадлежит группе students!). Но главная информация о правах доступа зашифрована в виде набора букв в левой части.

Первый символ — дефис, указывает на то, что это обычный файл (см.также) . Следующие три позиции относятся к владельцу; у user-005 есть все три разрешения. Очередные три позиции относятся к членам группы students; они могут читать файл и выполнять его, но не могут записывать в него, поскольку поле, которое должно содержать w, помещен дефис. И последние три поля относятся ко «всем остальным»; в данном случае у них те же права, что и у группы.

Сделав запрос о выводе информации, получим: user-005@server:~$ ls -la

- rwrw- r-- 1 user-005 students 12577 Apr 30 13:13 primer.txt

Вывод показывает, что владелец, как и группа, обладает правами чтения и записи (rw). У всех остальных есть только право на чтение.

11

Изменение владельца, группы и прав доступа

Чаще всего можно обойтись правами по умолчанию, устанавливаемые системой.

Обычно последним шагом при установке программного обеспечения является изменение владельца, группы и прав доступа.

Команда chown изменяет владельца файла, а команда chgrp изменяет группу. В Linux только root может использовать chown и chgrp, но любой пользователь может поменять группу на другую, к которой принадлежит сам, а также присоединиться к любой другой группе, если он знает пароль этой группы.

Права доступа можно назвать «режимом» файла, и команда, которая его изменяет, называется chmod. Для примера, имеется программа написанная на некотором языке программирования (Perl) с именем header.pl и нужно иметь возможность выполнить её. Для этого набирается:

user-005@server:~$ chmod +x header.pl

Знак «плюс» означае «добавить разрешение», а x указывает, каое именно разрешение. Если нужно снять разрешение на выполнение, вместо плюс ставим минус: user-005@server:~$ chmod -x header.pl

Эта команда присваивает права доступа на всех уровнях — владельца, группы и всех остальных. Можно присвоить право на выполнение только себе самому командой:

user-005@server:~$ chmod u+x header.pl

То, что находится перед плюсом, обозначает уровень права доступа, а то, что посе него — тип права доступа. Разрешение для пользователя (для себя) обозначается u, для группы — g, для остальных — o.

Поэтому для присвоения права доступа себе и группе нужно вввести:

user-005@server:~$ chmod ug+x header.pl

Можно присваивать несколько прав доступа: user-005@server:~$ chmod ug+rwx header.pl

12

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

Чтобы понять абсолютный режим, нужно думать на языке битов и восьмеричной нотации. В обычном режиме есть три символа, относящиеся к уровням прав доступа (пользователь, группа и остальные). Эти уровни показаны на рисунке 2.2. Внутри каждого уровня есть три бита, соответствующие правам на чтение, запись и исполнение.

ПОЛЬЗОВАТЕЛЬ

 

ГРУППА

ОСТАЛЬНЫЕ

 

 

 

 

 

 

 

 

 

чтение

запись

исполнение

чтение

запись

исполнение

чтение

запись

исполнение

 

 

 

 

 

 

 

 

 

400

200

100

40

20

10

4

2

1

Рисунок 2.2 — Биты в абсолютном режиме

Например, нужно дать себе право на чтение, а всем остальным не давать никаких прав. Для этого нужно задать бит, представляемый числом 400, поэтому команда будет следующей:

user-005@server:~$ chmod 400 header.pl

Чтобы дать всем право на чтение, выберите нужный бит для каждого уровня: 400 для самого себя, 40 для группы и 4 для остальных. Полностью эта команда будет выглядеть:

user-005@server:~$ chmod 444 header.pl

Эта команда аналогична использованию режима +r, за исключением того, что одновременно снимаются все права записи и выполнения. (Это все равно, что режим =r, знак равенства означает «присвоить эти права и никакие больше»). Чтобы дать всем права на чтение и исполнение, нужно добавить биты чтения и исполнения. Поэтому команда будет такой:

user-005@server:~$ chmod 555 header.pl

Это то же самое, что =rx. Для того чтобы дать кому-либо полный доступ, нужно задать соответствующую цифру равной 7

— сумме 4,2 и 1.

Задание режима по умолчанию, присваиваемого каждому созданному файлу, делается командой umask, которую можно

13

поместить и в ваш стартовый файл оболочки. Последний файл может называться .bashrc, .cshrc или как-либо иначе в зависимости от используемой оболочки. Использование аргумента команды umask схоже с абсолютным режимом chmod, но значение битов инвертировано. Нужно определить тип доступа, который хотите установить на владельца, группы и всех остальных, и вычесть каждую цифру из 7. В результате получится маска из трех цифр.

Например, хотите себе предоставить все права (7), своей группе — право чтения и выполнения (5), а остальным — никаких прав (0). Вычтите каждую цифру из 7 и получите 0 — для себя, 2 — для группы, и 7 — для остальных. Поэтому в стартовый файл нужно поместить команду:

umask 027

Команда chmod при интерпретации вашего режима смотрит на маску.

Дополнительные флаги

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

Например, при изменении собственного пароля пользователю позволено читать информацию, которая относится к собственному паролю. Реализация такого способа доступа к файлам производится с помощью флага Set-UID (SUID).

Флаг SUID обозначается символом «s» на позиции права исполнения (--s –x --x). В тех случаях когда нет права исполнения для самого владельца файла, в атрибутах файла появится «s». В восьмиричной системе исчисления для указания флага SUID используется число 4000, например, атрибуты

--s --x --x

в восьмиричном виде будут иметь вид 4111.

Для групп аналогичный флаг носит название Set-GID (SGID) и указывает в зоне определения прав группы. Его восьмиричное значение равно 2000. Отображение Set-GID в каталоге выглядит слежующим образом:

--x --S --x

В восьмеричной системе SGID записывается числом 2000.

Флаги SUID и SGID имеет смысл устанавливать только для бинарных исполняемых файлов.

Флаг в зоне прав прочих пользователей называется Sticky-Bit («липкий», «закрепляющий»), и используется для

14

запрещения удаления кода программы из памяти даже тогда, когда она уже выполнена. В операционной системе Linux особой нужды в нем нет, поэтому его используют только для запрета на удаление файлов в каталоге для всех, кроме владельца этих файлов, даже если права rw установлены для всех . Обозначается флаг Sticky-Bit символом «T» или «t», например,

rwrw- rwt

или в восьмеричной системе 1666.

Порядок выполнения задания

1.Создать в домашнем каталоге новый файл любым известным способом. Для подтверждения уникальности выполняемых действий рекомендуется при создании файлов и каталогов использовать свою фамилию.

2.Отработать навыки управления правами доступа с помощью команды chmod используя буквенные ключи а также абсолютную запись.

3.Убедиться в возможности/невозможности чтения/изменения/исполнения файла при различных значениях атрибутов доступа.

4.Создать подкаталог в своём домашнем каталоге. Изменяя режим доступа к каталогу убедится в возможности/невозможности просмотра/удаления/добавления/переименования файлов в нём.

5.От имени другого пользователя создать пробные файлы и каталоги. Проверить работоспособность прав доступа для членов группы.

Задание 2: Получить навыки работы с файловым менеджером Midnight Commander.

Режим командной строки не всегда удобен для начинающих, не знающих команды оболочки shell. В Linux существует аналог Norton Commander/FAR, который называется Midnight Commander. Не только внешний вид (рисунок 2.3), но и принципы работы в Midnight Commander знакомы, если уже есть навыки работы с таким файловым менеджером как Windows Commander или аналогичным.

Для вызова Midnight Commander используют команду: mc

15

Рисунок 2.3 — Программа Midnight Commander

Таблица 2.1 - Назначение функциональных клавиш

16

Клавиша

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

Выполняемое действие

Вызов контекстно-зависимой подсказки Вызов меню, созданного пользователем Просмотр файла Вызов встроенного редактора файла

Копирование файла или группы отмеченных файлов в активной панели в открытый каталог второй панели

Перенос файла или группы отмеченных файлов из каталога в каталог Создание нового каталога Удаление файла, каталога или группы отмеченных файлов Вызов основного меню программы Выход из программы

17

Рисунок 2.4 — Панели программы Midnight Commander

18

Отчёт по лабораторной работе должен содержать:

1.1Описание команд chmod, chown, chgrp, newgrp, groups с дополнительными ключами.

1.2Уникальные примеры использования каждой команды c комментариями и скриншотами. Для подтверждения уникальности скриншотов рекомендуется при создании файлов и каталогов использовать свою фамилию.

2 Описание возможностей программы Midnight Commander. Исполнение каждой команды сопоровождается примером, текстовым комментарием и скриншотом.

19

Лабораторная работа №3 « Утилиты архивирования и сжатия»

Задание 1: Ознакомиться с утилитами архивирования и сжатия в среде Linux

При установке или обновлении программного обеспечения в Unix-системах, нужно уметь работать со средствами сжатия и архивирования файлов. Имеются десятки утилит такого рода. Некоторые из них (такие как tar и compress) относятся к самым ранним дням Unix. Другие, такие как gzip и bzip2, являются относительно новыми. Главной задачей этих утилит является архивирование файлов (т.е. Упаковка группы файлов в один для удобства перемещения и создания резервной копии) и сжатие файлов для уменьшения дискового пространства, занимаемого файлом или группой файлов.

Использование gzip и bzip

gzip является быстрой и эффективной программой, распространяемой в рамках проекта GNU. Основная функция gzip

— сжать файл, сохранить сжатую версию в виде filename.gz и удалить исходный несжатый файл. Исходный файл удаляется только в случае успешного выполнения gzip. Случайно удалить при этом файл очень трудно. gzip, являясь программным обеспечением GNU, имеет большое число параметров. Характер работы этой программы можно модифицировать с помощью параметров командной строки.

Имея большой файл например с именем arch.txt: user-005@server:~$ ls -l arch.txt

-rw-r-r-- 1 user-005 students 2355 25 Aug 17:54:00 arch.txt

Для сжатия данного файла с помощью gzip нужно выполнить следующую команду: gzip arch.txt

В результате arch.txt будет заменен сжатым файлом arch.txt.gz. Конечный результат будет таким: user-005@server:~$ gzip arch.txt

user-005@server:~$ ls -l arch.txt.gz

-rw-r-r-- 1 user-005 students 1529 25 Aug 17:54:00 arch.txt.gz

Обратить внимание нужно на то, что по завершении работы gzip файл arch.txt удаляется.

Можно передать gzip список имен файлов. Каждый файл списка будет сжат и получит расширение .gz. Эффективность сжатия файла зависит от его формата и содержания. Например, многие файлы графических

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]