Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Возможные действия над файлом. Указание прав доступа с помощью буквенной нотации. Указание прав доступа с помощью числовой нотации




Возможные действия над файлом

Что можно делать с файлом после его создания? В первую очередь просматривать, или читать (r - read).

Во вторую очередь, файл можно изменить (дописать, исправить, переименовать, переместить). Таким образом, мы можем говорить о возможности записи (w - write) в файл.

Если файл является программой, то его содержимое представляет собой команды для процессора, выполнение которых приводит к тому или иному желаемому (мы надеемся) эффекту. Другими словами, некоторые файлы можно исполнять (x - execution).

Указание прав доступа с помощью буквенной нотации

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

r w x r w x r w x

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

r w - r - - r - -

Указание прав доступа с помощью числовой нотации

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

1 1 0 1 0 0 1 0 0

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

Однако запись из девяти символов достаточно длинная. Чтобы ее сократить используют преобразование двоичных чисел в восьмеричные. Триады нулей и единиц двоичной системы как раз составляют значения от 0 до 7 в восьмеричной системе счисления.

Особенности доступа к каталогам

Каталог — это особый тип файла. Его содержание — это список других файлов.

Каталоги имеют те же «биты прав», что и остальные файлы. Однако то, что эти права означают может быть не таким простым для понимания.

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

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

Если каталог можно изменять (w), то это означает, что в нем можно изменять файлы, их имена, удалять их. Опасность! Это можно делать даже с файлами, доступ к которым запрещен для данной категории. Лечение! Вводят дополнительный t-бит. При его наличии пользователь может изменять только свои файлы.

Следует понимать, что...

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

 

ПРАКТИЧЕСКАЯ ЧАСТЬ

Под администратором системы сделать следующее:

  1. Создать двух новых пользователей, если в системе их недостаточно. Потребуется три пользователя. Например: sv, pupil7, test.
  2. Создать новую группу. Например: real.

groupadd real

  1. Добавить двух пользователей в только что созданную группу.

4. gpasswd -a sv real

gpasswd -a pupil7 real

  1. Создать общедоступный разделяемый каталог в каталоге /home. Например lesson.

6. mkdir /home/lesson

chmod a+wt /home/lesson

  1. Перейти в каталог

cd /home/lesson

  1. В каталоге /home/lesson/ создать файл hello. c

vim hello. c


Нажать клавишу Insert. И ввести программный код:

#include < stdio. h>

main()

{

printf(" hello world! \n " );

}


Нажать Esc. Затем комбинацию: wq (двоеточие и две буквы). Нажать Enter.

  1. Скомпилировать файл.

gcc hello. c


В результате в каталоге должен появиться исполняемый файл a. out

  1. Изменить пользователя и группу файлов.

11. chown sv: real hello. c

chown sv: real a. out

 

1. Перейдите в текстовый режим (терминал tty2). Войдите в систему под пользователем sv. Перейдите в каталог /home/lesson.

cd /home/lesson

2. Сделайте тоже самое для пользователей pupil7 и test (терминалы соответственно tty3 и tty4).

3. Вернитесь к пользователю sv.

4. sv. Просмотрите содержимое каталога:

ls -l

Опишите кто является владельцем файлов a. out и hello. c, какой группе они принадлежат.
_____________________________________________________
_____________________________________________________

5. sv. Запретите «остальным» исполнять файл a. out:

chmod o-x a. out

6. pupil7. Выполните файл a. out:

. /a. out

7. test. Попытайтесь выполнить файл a. out также. Что произошло? Объясните разницу между пользователями test и pupil7 по отношению к данному файлу.
Что произошло? _________________________________________

Причина: ______________________________________________

8. pupil7. Попытайтесь переименовать файл hello. c:

mv hello. c hi. c


Что произошло? ________________________________________
Причина: ______________________________________________

9. pupil7. Попытайтесь установить разрешение на изменение файла hello. c для группы:

chmod g+w hello. c


Что произошло? ________________________________________

10. sv. Выполните предыдущую команду в роли данного пользователя. Почему пользователь sv может менять значения прав файла hello. c, а pupil7 — нет?
_______________________________________________________

11. pupil7. Переименуйте файл hello. c:

mv hello. c hi. c

12. test. Создайте файл:

cat > filetest


Напишите несколько строчек, затем нажмите Ctrl + C.

13. test. Просмотрите каталог:

ls -l


Просмотрите файл:

cat filetest

14. test. Разрешите запись группе и запретите всё для «остальных»:

chmod 660 filetest

15. sv. Попытайтесь прочитать файл:

cat filetest


Почему отказано в доступе? ___________________________________

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...