Мегаобучалка Главная | О нас | Обратная связь


Права доступа к файлам.



2019-11-13 193 Обсуждений (0)
Права доступа к файлам. 0.00 из 5.00 0 оценок




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

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

С точки зрения самой системы работа пользователя в ней — это выполнение программ (процессов) с идентификаторами UID/GID пользователя, которые осуществляют различные действия с файлами и каталогами, и запускают на выполнение другие процессы. Например, одна из таких программ — командная оболочка, которая считывает команды пользователя из командной строки и передаёт их системе на выполнение.

Каждая программа (процесс) выполняется от имени определённого пользователя (т. е. с определёнными идентификаторами UID/GID). Её возможности работы с файлами и каталогами определяются правами доступа, заданными для этого пользователя.

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

У любого файла в системе есть владелец — один из пользователей. Однако каждый файл одновременно принадлежит и некоторой группе пользователей системы.

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

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

$ ls -l ~

итого 8

drwx------ 2 student student 4096 Фев 19 17:30 Documents

-rw-r--r-- 1 student student 0 Фев 20 08:03 file.txt

drwx------ 2 student student 4096 Фев 19 15:59 tmp

 

$ ls -l /var

итого 72

drwxr-xr-x 2 root root 4096 Апр 19 2007 adm

drwxr-xr-x 4 root root 4096 Фев 15 08:32 cache

drwxr-xr-x 2 root root 4096 Апр 19 2007 db

dr-xr-xr-x 2 root root 4096 Апр 19 2007 empty

drwxr-xr-x 11 root root 4096 Фев 9 15:29 lib

drwxr-xr-x 2 root root 4096 Апр 19 2007 local

drwxr-xr-x 6 root root 4096 Фев 20 07:32 lock

drwxr-xr-x 14 root root 4096 Фев 20 07:32 log

lrwxrwxrwx 1 root root 10 Фев 5 13:22 mail -> spool/mail

drwxr-xr-x 2 root root 4096 Апр 19 2007 nis

drwxr-x--- 2 root nobody 4096 Апр 19 2007 nobody

drwxr-xr-x 2 root root 4096 Апр 19 2007 opt

drwxr-xr-x 2 root root 4096 Апр 19 2007 preserve

drwxr-xr-x 5 root root 4096 Апр 19 2007 resolv

drwxr-xr-x 5 root root 4096 Фев 17 03:38 run

drwxr-xr-x 6 root root 4096 Фев 20 07:32 spool

drwxrwxrwt 2 root root 4096 Апр 19 2007 tmp

drwxr-xr-x 3 root root 4096 Фев 15 09:24 www

drwx------ 2 root root 4096 Апр 19 2007 yp

$ ls -l /bin/su

-rws--x--- 1 root wheel 23712 Окт 18 2006 /bin/su

Для файла ~/file.txt первое поле в строке (-rw-r--r--) отражает права доступа. Третье поле указывает на владельца файла (student), четвёртое поле указывает на группу, которая владеет этим файлом (student). Последнее поле — это имя файла (file.txt). Другие поля описаны в документации к команде ls.

Данный файл является собственностью пользователя student и группы student. Последовательность -rw-r--r-- показывает права доступа для пользователя — владельца файла, пользователей — членов группы-владельца, а также для всех остальных пользователей.

Первый символ из этого ряда обозначает тип файла. Символ — (дефис) означает, что это — обычный файл, который не является каталогом (в этом случае первым символом было бы d), символьной ссылкой (было бы l) или псевдофайлом устройства (было бы c или b). Следующие три символа (rw-) представляют собой права доступа, предоставленные владельцу student. Символ r — сокращение от read (англ. читать), а w — сокращение от write (англ. писать). Таким образом, student имеет право на чтение и запись (изменение) файла file.txt.

После символа w мог бы стоять символ x, означающий наличие прав на исполнение (англ. execute, исполнять) файла. Однако символ - (дефис), стоящий здесь вместо x, указывает, что student не имеет права на исполнение этого файла. Это разумно, так как файл file.txt не является программой. В то же время, пользователь, зарегистрировавшийся в системе как student, при желании может предоставить себе право на исполнение данного файла, поскольку является его владельцем. Для изменения прав доступа к файлу или каталогу используется команда chmod.

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

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

Для ~/Documents первое поле содержит drwx------. Это каталог (на что указывает первый символ — буква d), владелец которого (student) может читать содержимое каталога (т. е. получать список содержащихся в нём файлов), писать в каталог (т. е. изменять его содержимое — создавать, удалять и переименовывать файлы) и переходить в него (для каталогов операцией выполнения считается возможность сделать данный каталог текущим). Другие пользователи — как члены группы student, так и все прочие — никаких прав не имеют и ни перейти, ни прочитать содержимое этого каталога, ни, тем более, что-либо в него записать не могут.

Для /var/adm первое поле содержит drwxr-xr-x. Это каталог, владелец которого — root — имеет права rwx — т.е. может читать, писать и переходить в этот каталог. Пользователи из группы root имеют права r-x — т.е. могут читать содержимое каталога и переходить в него. Те же права и у всех остальных пользователей.

Для /var/empty первое поле содержит dr-xr-xr-x. Это каталог, владелец которого (root), группа (root) и все остальные пользователи имеют одинаковые права r-x — т.е. могут читать содержимое каталога и переходить в него, что соответствует названию каталога (англ. empty — пустой). Правда, стоит отметить, что root записать что-либо в этот каталог всё-таки может, поскольку на суперпользователя права доступа не распространяются.

Для /var/nobody первое поле содержит drwxr-x---. Это каталог, владелец которого — root — имеет права rwx. Группа — nobody — имеет права r-x, т.е. может переходить в каталог и читать его. Прочие пользователи доступа к каталогу не имеют. Такие права объясняются тем, что nobody — это псевдопользователь, и /var/nobody — его домашний каталог (см. запись в /etc/passwd). Это бесправный пользователь, и даже прав на запись чего-либо в свой домашний каталог у него нет.

Для /var/mail в первом поле стоит lrwxrwxrwx. Первый символ l означает символьную ссылку. Согласно выводу команды ls -l, эта ссылка указывает на /var/spool/mail (путь spool/mail указан относительно каталога, где размещена ссылка — т.е. /var). Права доступа к файлу или каталогу, на который ссылается символьная ссылка, определяются правами на сам файл, а не правами ссылки. Поэтому здесь права доступа ничего не означают.

Также видно два особых случая. Первый — это /var/tmp. Права на этот каталог — rwxrwxrwt. Последний символ t означает наличие у каталога дополнительного флага — т.н. sticky bit. Это каталог для временных файлов, и в него разрешена запись всем пользователям. Однако удалять из него пользователи могут только свои файлы.

Второй случай — это /bin/su . Здесь права — rws--x---. Владелец файла (root) может его читать, записывать и запускать. Пользователи, включённые в группу wheel, могут только запускать этот файл, прочитать его и, тем более, записать в него они не имеют права. Все прочие пользователи никаких прав на этот файл не имеют. Буква s вместо x для прав владельца файла имеет особый смысл. Это т.н. SUID bit, и его наличие означает, что данная программа будет запускаться не с правами пользователя, а с правами владельца файла. Иными словами, непривилегированный пользователь (входящий в группу wheel!) может запустить эту программу и получить права её владельца — т.е. суперпользователя.

Как правило, настройки современных Linux-систем в целях повышения безопасности запрещают удалённый вход в систему с правами суперпользователя, в ряде дистрибутивов для пользователя root запрещён и локальный вход в систему. Программа /bin/su является одним из способов повысить права обычного пользователя до администратора системы. Именно поэтому её выполнение разрешено только пользователям из группы wheel.

Возможность доступа к файлу зависит также от прав доступа к каталогу, в котором находится файл. Например, даже если права доступа к файлу установлены как rwxrwxrwx, другие пользователи не могут получить доступ к файлу, пока они не имеют прав на исполнение для каталога, в котором находится файл. Другими словами, чтобы воспользоваться имеющимися у вас правами доступа к файлу, вы должны иметь право на исполнение для всех каталогов вдоль пути к файлу. Например, псевдопользователь nobody не сможет прочитать файл ~/file.txt, несмотря на то, что права на этот файл — rw-r--r--, т.к. права доступа к домашнему каталогу /home/student/ — rwx------.

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

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



2019-11-13 193 Обсуждений (0)
Права доступа к файлам. 0.00 из 5.00 0 оценок









Обсуждение в статье: Права доступа к файлам.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (193)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)