Вход/Регистрация
Linux-сервер своими руками
вернуться

Колисниченко Денис Николаевич

Шрифт:

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

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

chmod число <файл|каталог>

Число называется маской прав доступа и представляет собой число в восьмеричной системе, задающее наборы прав доступа. Напомню, что восьмеричная система — это система с основанием 8 (см. табл. 4.11). Не спешите переворачивать страницу, услышав слово «восьмеричная», все на самом деле намного проще, чем звучит.

Каждое число, задающее права доступа, состоит из трех разрядов, например, 760:

7 — первый разряд;

6 — второй разряд;

0 — третий разряд.

Первый разряд задает права доступа для владельца файла, второй — для группы, третий — для остальных пользователей. Одному разряду восьмеричной системы соответствует три разряда в двоичной.

Соответствие разрядов восьмеричной системы разрядам в двоичной системе Таблица 4.11

Восьмеричный формат  Двоичный формат
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Каждый двоичный разряд задает соответствующий ему тип доступа: первый — чтение, второй — запись, третий — выполнение. Будем считать, что разряды нумеруются слева направо. 0 — если данная операция запрещена, а 1 — если разрешена. Теперь все становится на свои места, например, право доступа, задаваемое числом 777 (111111111) означает право на чтение, запись и выполнение для всех пользователей.

Наиболее часто используется маска 644, разрешающая чтение и модификацию файла для владельца, и только чтение — для других пользователей. Иногда используется набор прав доступа, состоящий из четырех цифр. Старшая цифра обозначает флаги SETUID (4), SETGID (2), sticky-бит (1).

Какие же права доступа будут у только что созданного каталога командой mkdir? Обычно маска прав доступа равна 0777 минус значение, выводимое командой umask. Значение, выводимое командой umask, обычно равно 022. Следовательно, маска прав доступа будет равна 0777 – 0022 = 0755. И действительно, создайте каталог и введите команду ls –l:

mkdir new

ls –l

…

drwxr-xr-x 2 den den 4096 Янв 14 14:30 new/

…

Набор rwx (111) равен семи, а набор r-x (101) равен пяти в восьмеричной системе. Получается, что маска доступа к новому каталогу = 755. Установить значение umask можно с помощью самой этой команды. Просто выполните команду umask 000 от имени суперпользователя и вы установите новое значение, равное нулю. Обратите внимание, команда mkdir автоматически устанавливает право выполнения (доступа) для каталога, иначе к каталогу нельзя будет получить доступ.

 Кроме рассмотренных выше прав доступа в системе Linux имеются еще два специальных права доступа — SUID (Set User ID root) и SGID (Set Group ID root). Их существование связано с тем, что некоторые программы (pppd, smbmount, SVGA-программы) требуют для своей работы привилегий пользователя root.

Допустим, что вы хотите, чтобы другие пользователи могли устанавливать РРР-соединение, для этого нужно установить право доступа SUID для программы-демона /usr/sbin/pppd. Делается это так:

chmod u+s /usr/sbin/pppd

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

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

Казалось бы, все хорошо: и пользователи довольны, и вам не нужно каждый раз подходить к серверу, если нужно установить коммутируемое соединение или примонтировать общий ресурс. Однако следует учитывать, что программы, требующие установления SUID (или SGID) для своей работы являются потенциальными дырами в системе безопасности. Представьте такую ситуацию: у вас в системе установлена программа superformat, которая предназначена для форматирования дисков. Создание файловой системы, пусть даже на дискете, — это привилегированная операция, требующая права доступа root. При установке этой программы для нее сразу устанавливается право SUID, чтобы разрешить пользователям форматировать дискеты. Пользователь запускает ее для форматирования диска. Программа запускается, получает права root, форматирует дискету и нормально завершает работу. А теперь представим, что программа некорректно завершает свою работу — по ошибке, например, произошло переполнение стека (такие случаи известны при работе с этой программой). Что же при этом произошло: программа supermount получила права root и некорректно завершила работу. В результате чего обыкновенный пользователь получил права root! Неквалифицированный пользователь с правами root — это намного хуже, чем просто крах системы. Нельзя с уверенностью сказать что произойдет, если пользователь получит права root. Выходит, что не нужно быть профессиональным хакером — достаточно просто уметь форматировать дискеты.

Помните о потенциальной опасности при работе с такими программами и, по возможности, избегайте использования прав SUID и SGID.

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

 Я позволю себе сделать еще несколько замечаний относительно прав доступа SUID и SGID:

  • Читать дальше
  • 1
  • ...
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • ...

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

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: