The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Каталог документации / Раздел "Документация для Linux" / Оглавление документа

Занятие 4.

Тема:  Права доступа.

Вид занятия:  лекция, практическое занятие.

Учебные вопросы:

1. Распределение прав доступа в Linux. Чтение. Запись.

   Выполнение.

2. Особенности прав у каталогов.

3. Назначение прав доступа. Команды chmod, chown, chgrp.

4. Sticky bit.

Время: 90 минут

Литература:

1. Робачевский А.М. Операционная система Unix. - СПб.:

   БВХ  - Санкт-Петербург, 1999. - 528 с., ил.

2. Армстронг (мл.) Джеймс. Секреты Unix : 2-е изд.: Пер. с

  англ.: Уч. пос. - М.: Издательский дом Вильямс, 2000. - 1072

  с.: ил. - Парал. тит. англ.

3. Паркер Тим. Linux 5.2. Энциклопедия пользователя: Пер. с

   англ. - К.: Издательство ДиаСофт, 1999. - 688 с.


Ход занятия.

1. Для каждого объекта в файловой системе Linux существует набор прав доступа, определяющий взаимодействие пользователя с этим объектом. Такими объектами могут быть файлы, каталоги, процессы, а также специальные файлы (например, устройства). Так у каждого объекта в Linux имеется владелец, то права доступа применяются относительно владельца файла. Они состоят из набора 3 групп по три атрибута:

- чтение(r), запись(w), выполнение(x) для владельца;

- чтение, запись, выполнение для группы владельца;

- чтение, запись, выполнение для всех остальных.

Такие права можно представить краткой записью:

rwxrwxrwx - разрешено чтение, запись и выполнение для всех

rwxr-xr-x - запись разрешена только для владельца файла, а чтении и выполне-ние для всех.

rw-rw-r-- - запись разрешена для владельца файла и группы владельца файла, а чтение - для всех.

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

2. Права доступа распространяются и на каталоги. Они означают:

r - если установлено право на чтение из каталога, то можно увидеть его содержимое командой ls.

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

х - если установлено право исполнения на каталог, то пользователь имеет право перейти в такой каталог командами наподобие cd.

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

3. Для распределения прав доступа в Linux существует множество команд. Основные из них - это chmod, chown и chgrp.

Команда chmod (Change MODe - сменить режим) - изменяет права доступа к файлу. Для использования этой команды также необходимо иметь права владельца файла или права root. Синтаксис команды таков:

chmod mode filename, где

filename - имя файла, у которого изменяются права доступа;

mode - права доступа, устанавливаемые на файл. Права доступа можно записать в 2 вариантах - символьном и абсолютном.

В символьном виде использование команды chmod будет выглядеть следующим образом:

             |r|

     |u|     |w|

     |g| |+| |x|

chmod |o| |-| |X| filename,

     |a| |=| |u|

             |g|

             |o|

где:

u,g,o,a - установка прав для пользователя, группы, остальных пользователей, всех групп прав доступа соответственно.

+,-,=  -  добавить, удалить, установить разрешение соответственно.

r,w,x,X,u,g,o - право чтения, записи, выполнения, выполнения если есть такое право еще у какой либо из групп доступа, такие же как у владельца, такие же как у группы, такие же как у остальных пользователей.

filename -  Имя файла, у которого изменяются права.

[student@ns student]$ ls -l lesson5.txt

-rw-------  1  student student  39 Nov 19 15:17  lesson5.txt

[student@ns student]$ chmod g+rw lesson5.txt

[student@ns student]$ ls -l lesson5.txt

-rw-rw----  1  student student  39 Nov 19 15:18  lesson5.txt

[student@ns student]$ chmod o=u lesson5.txt

[student@ns student]$ ls -l lesson5.txt

-rw-rw-rw-  1  student student  39 Nov 19 15:18  lesson5.txt

[student@ns student]$ chmod o-w lesson5.txt

[student@ns student]$ ls -l lesson5.txt

-rw-rw-r--  1  student student  39 Nov 19 15:19  lesson5.txt

[student@ns student]$_

Для использования абсолютного режима необходимо представить права доступа к файлу в виде 3-х двоичных групп. Так например:

rwx r-x r--   будет выглядеть как:

111 101 100

Теперь каждую двоичную группу перевести в 8-ричное число:

111 - 7, 101 - 5, 100 - 4.

Чтобы задать файлу такие права необходимо выполнить команду:

[student@ns student]$ ls -l lesson5.txt

-rw-rw-r--  1  student student  39 Nov 19 15:19  lesson5.txt

[student@ns student]$chmod 755 lesson5.txt

[student@ns student]$ ls -l lesson5.txt

-rwxr-xr--  1  student student  39 Nov 19 15:19  lesson5.txt

[student@ns student]$_

Задание для обучаемых: попробовать изменить права файлу lesson5.txt и задать следующие: r w x r- - r - - (744), r - - - w- - - x(421), - - x - w - r - -(124).

Также предложить им проделать то же самое в символьном виде.

Команда chown (CHange OWNer - сменить владельца) - позволяет сменить владельца файла. Для использования этой команды необходимо либо иметь права владельца текущего файла или права root. Синтаксис команды прост:

chown username:groupname filename, где

username - имя пользователя - нового владельца файла;

groupname - имя группы - нового владельца файла;

filename - имя файла, у которого сменяется владелец.

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

Команда chgrp используется для изменения владельца-группы файла. Синтаксис ее таков:

chgrp groupname filename,

где:

groupname - имя группы, которой будет принадлежать файл

filename - имя изменяемого файла

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

4. Существуют еще несколько особых прав, которые могут устанавливаться на файлы и каталоги. О некоторых из них мы поговорим при изучении темы “процессы”. Но один рассмотрим сейчас. Это иак называемый sticky bit (бит прикрепления).

В первых версиях Юникс этот бит использовался для того, чтобы заставить систему при работе программы оставлять образ ее кода в памяти. Тогда при следующем обращении к программе на ее запуск тратилось намного меньше времени так как чтение кода с устройства не более не требовалось. Для файлов и сегодня в Linux осталось прежнее значение этого бита. А вот для каталогов этот атрибут преобрел новое значение. Если sticky bit установлен на каталог, то удалить файлы из такого каталога может только пользователь-владелец файла, и то только если  у него есть право на запись в файл. Группа-владелец и остальные пользователи даже при наличии прав на запись в файл не смогут удалить его при установленном на каталог sticky bit.

Бит прикрепления устанавливается командой chmod в символьном виде:

chmod +t filename


  Закладки на сайте
  Проследить за страницей
Created 1996-2018 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor