BASH Programming - Введение


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


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

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

Быстрое объяснение прав доступа в unix:

Собственность - Какой пользователь(ли) и группа(ы) удерживает контроль установок прав вершины (node) и родителя вершины.

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

Чтение:

  • Возможность просмотра содержимого файла
  • Возможность чтения каталога
  • Запись:

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

  • Возможность запуска программы или скрипта оболочки (shell script)
  • Возможность поиска в каталоге, в комбинации с правом чтения
  • Save Text Attribute: (Для каталогов)

    sticky бит также имеет отличное значение применимо к каталогам. Если sticky бит установлен для каталога, то пользователь может удалять только те файлы, владельцем которых он является, или к которым ему явно заданы права записи, несмотря на то, что ему разрешена запись в этот каталог. Это сделано для каталогов подобных /tmp, в которые разрешена запись всем, но в которых нежелательно разрешать любому пользователю удалять файлы от нечего делать. sticky бит видно как 't' в полном режиме отображения содержимого каталога. (long listing).

    SUID Attribute: (Для файлов)

    Описывает set-user-id права на файл. Если права доступа set-user-id установлены во "владелец" и файл исполняемый, то процесс, который запускает его, получает доступ к системным ресурсам основываясь на правах пользователя, который создал этот процесс. Во многих случаях это является причиной возникновения 'buffer overflow'.


    SGID Attribute: (Для файлов)

    Если установлен в правах доступа "группы", этот бит контролирует " set group id" статус файла. При этом он работает также как и SUID, только задействована при этом группа, а не отдельный пользователь.

    SGID Attribute: (Для каталогов)

    Если вы установите SGID бит для каталога (командой "chmod g+s directory"), то файлы содержащиеся в этом каталоге будут иметь установки группы такие, как у каталога.

    Вы - Владелец файла

    Группа - Группа, к которой вы принадлежите

    Остальные - Любой в системе, кто не является владельцем либо членом группы

    Пример файла:

    -rw-r--r-- 1 kevin users 114 Aug 28 1997 .zlogin 1й бит - каталог? (нет) 2й бит - чтение владельцем? (да, для kevin) 3й бит - запись владельцем? (да, для kevin) 4й бит - выполнение владельцем? (нет) 5й бит - чтение группой? (да, для users) 6й бит - запись группой? (нет) 7й бит - выполнение группой? (нет) 8й бит - чтение остальными? (да, для остальных) 9й бит - запись остальными? (нет) 10й бит - выполнение остальными? (нет)

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

    -r-------- Разрешают чтение файла владельцем --w------- Разрешают владельцу изменение или удаление файла ---x------ Владелец может выполнять эту программу, но не скрипты командного интерпретатора, которые еще нуждаются в правах на чтение ---s------ Будет выполняться с эффективным пользовательским ID = владелец -------s-- Будет выполняться с эффективным пользовательским ID = группа -rw------T Не обновлять "последнего времени изменения". Обычно используется для swap файлов ---t------ Не действует. (прежде sticky бит)

    Пример каталога:

    drwxr-xr-x 3 kevin users 512 Sep 19 13:47 .public_html/ 1й бит - каталог? (да, содержит много файлов) 2й бит - чтение владельцем? (да, для kevin) 3й бит - запись владельцем? (да, для kevin) 4й бит - выполнение владельцем? (да, для kevin) 5й бит - чтение группой? (да, для users) 6й бит - запись группой? (нет) 7й бит - выполнение группой? (да, для users) 8й бит - чтение остальными? (да, для остальных) 9й бит - запись остальными? (нет) 10й бит - выполнение остальными? (да, для остальных)





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

    dr-------- Можно просмотреть содержание, но нельзя прочесть атрибуты файла d--x------ Можно войти в каталог, а также использовать его в полной записи файла (т.е. с путем к нему) dr-x------ Владелец может теперь просмотреть атрибуты файла d-wx------ Файлы теперь можно создавать/удалять, даже если каталог не текущий d------x-t Предотвращает файлы от удаления остальными с правами записи. Используется для /tmp d---s--s-- Никаких действий

    Системные конфигурационные файлы (обычно в /etc) имеют обычно режим 640 (что означает -rw-r-----) и являются собственностью администратора. В зависимости от требований безопасности в вашей системе, вы можете изменить эти установки. Никогда не предоставляйте возможности записи в системные файлы для "группы" или "остальных". Некоторые конфигурационные файлы, включая /etc/shadow, должны разрешать чтение только администратору, а каталоги в /etc должны по крайней мере быть недоступны другим.

    SUID Shell Scripts

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


    Содержание раздела