Linux глазами хакера
Шрифт:
•
•
□ второй — права пользователя. Это число может быть от 0 до 7;
□ третий — права группы. Значение в диапазоне от 0 до 7;
□ четвертый — права остальных пользователей. Это число может быть от 0 до 7.
Например, мы хотим, чтобы владелец и группа имели все права (число 7), а остальные пользователи могли только выполнять файл (число 1). Значит, команда будет выглядеть следующим образом:
Число 771 в символьном виде соответствует правам
После этой команды права доступа на файл станут
или
После наших манипуляций права доступа на файл станут
4.1.2. Владелец файла
Для изменения владельца файла существует команда
Через параметр
Изменить можно и группу, к которой принадлежит файл. Для этого выполните команду
Здесь задается имя группы, которой предоставляются права на указанный файл. Например, для файла test укажите группу администратора root с помощью такой команды:
4.1.3. Правила безопасности
При назначении прав на доступ к файлам и папкам вы должны следовать принципу минимализма, описанному в разд. 2.10.1. Чтобы это правило действовало, по умолчанию должно быть запрещено все. Открываем доступ только на то, что необходимо, и ничего лишнего. Если файл не должен быть виден пользователю, то нельзя разрешать даже его отображение в дереве каталогов.
Любые лишние объекты могут оказаться фатальными для безопасности системы не только с точки зрения взлома, но и утечки информации. Например, файлы бухгалтерской отчетности должны быть доступны только для тех, кто с ними работает. Если показать эти документы всем, то финансовые данные, возможно, станут достоянием общественности, и это нежелательным образом отразится на благосостоянии компании.
Самое главное для защиты вашей системы — не дать пользователям возможность изменять системные файлы. В Linux основные конфигурационные файлы находятся в каталоге /etc. Только администратор root должен иметь право их модифицировать. Производители дистрибутивов настраивают систему по умолчанию именно так, и не следует повышать статус пользователей без особой надобности.
4.1.4. Права по умолчанию
Когда пользователь создает новый файл или директорию, то им назначаются права по умолчанию. Давайте разберем это на примере. Для создания файла выполним команду
Теперь проверим права на этот
Такая политика неверна, потому что если вы создадите файл, который хранит конфиденциальные данные, то информация будет доступна для всеобщего обозрения. И если вы забудете понизить права, то любой сможет увидеть и прочитать файл.
Ситуацию можно изменить, если понимать, как создаются права для нового файла. Они рассчитываются на основе маски, текущее значение которой определяется командой
Посмотрим, как маска влияет на регламентацию доступа. По умолчанию права для файлов устанавливаются в значение 666 минус маска, а для директорий — 777 минус маска.
Теперь ясно, что если маска равна
Для директорий расчет аналогичный, и при маске, равной 002, по умолчанию будут устанавливаться права 777-002=775 (drwxrwxr-x). В случае с маской 0022 значение определяется как 777-002=755, а это соответствует правам
Все это не есть хорошо. Если владелец должен иметь доступ, достаточный для полноценной работы с файлами и директориями, то остальные вообще не должны иметь прав. Эту ситуацию можно исправить изменением маски. Я рекомендую установить ее в
При расчете прав на файл можно подумать, что я ошибся, ведь 666-077 далеко не равно 600. Почему же так получилось? Просто вычитание происходит поразрядно, т.е. первая цифра 6 в числе минус первая цифра 0 в маске, затем операция производится со вторыми цифрами (6-7) и т.д. Если какой-либо результат получается отрицательным, то он округляется до нуля.
Вот такое положение дел нас уже устраивает. Чтобы установить новую маску, выполните команду
4.1.5. Права доступа к ссылкам
В разд. 3.1.3 мы рассматривали жесткие и символьные ссылки на файлы. Для начала вспомним права на жесткие ссылки: