Читаем Linux глазами хакера полностью

Внимание!

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

<p>4.1.1. Назначение прав</p>

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

chmod параметры права файл

Параметры могут включать комбинацию значений изменения прав по категориям пользователей:

□ u — владельца;

□ g — группы;

□ о — остальных пользователей;

□ a — все права (то же самое, что передать значение ugo).

Перед указанием прав можно задать режим их изменения относительно существующих:

□ + — добавить;

□ - — удалить;

□ = — заменить новыми (старые значения будут уничтожены). После этого устанавливается режим доступа:

□ r — чтение;

□ w — запись;

□ x — выполнение;

□ X — выполнение, если файл является каталогом или уже имеет аналогичные права для какого-либо пользователя;

□ s — setuid- или setgid-бит;

□ t — sticky-бит. В этом случае только владелец файла и каталога сможет выполнить удаление;

□ u — всем пользователям, как и у владельца;

□ g — всем пользователям, как и у группы;

□ o —для остальных, как у пользователей, не входящих в группу файла и не являющихся его владельцем.

В случае с числовым представлением команда выглядит следующим образом:

chmod права файл

Права передаются в виде восьмеричного числа из четырех разрядов:

□ первый — определяет дополнительный бит и может принимать одно из значений:

 • 1 — бит принадлежности;

 • 2 — setgid-бит;

 • 4 — setuid-бит;

□ второй — права пользователя. Это число может быть от 0 до 7;

□ третий — права группы. Значение в диапазоне от 0 до 7;

□ четвертый — права остальных пользователей. Это число может быть от 0 до 7.

Например, мы хотим, чтобы владелец и группа имели все права (число 7), а остальные пользователи могли только выполнять файл (число 1). Значит, команда будет выглядеть следующим образом:

chmod 771 filename

Число 771 в символьном виде соответствует правам rwxrwx--x. Следующая команда отменит возможность чтения файла группой:

chmod g-r text

После этой команды права доступа на файл станут rwx-wx--x. Теперь давайте запретим всем запуск файла. Для этого можно выполнить команду:

chmod ugo-x text

или

chmod a-x text

После наших манипуляций права доступа на файл станут rw--w----.

<p>4.1.2. Владелец файла</p>

Для изменения владельца файла существует команда chown:

chown имя файл

Через параметр имя определяется пользователь, которому нужно передать права на указанный файл. Например, давайте сделаем владельцем файла test администратора root. Для этого нужно выполнить следующую команду:

chown root test

Изменить можно и группу, к которой принадлежит файл. Для этого выполните команду chgrp:

chgrp имя файл

Здесь задается имя группы, которой предоставляются права на указанный файл. Например, для файла test укажите группу администратора root с помощью такой команды:

chgrp root test

<p>4.1.3. Правила безопасности</p>

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

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

Самое главное для защиты вашей системы — не дать пользователям возможность изменять системные файлы. В Linux основные конфигурационные файлы находятся в каталоге /etc. Только администратор root должен иметь право их модифицировать. Производители дистрибутивов настраивают систему по умолчанию именно так, и не следует повышать статус пользователей без особой надобности.

<p>4.1.4. Права по умолчанию</p>

Когда пользователь создает новый файл или директорию, то им назначаются права по умолчанию. Давайте разберем это на примере. Для создания файла выполним команду ls и перенаправим вывод в файл:

Перейти на страницу:

Похожие книги