Для изменения режима доступа на объекты файловой системы используется команда 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----
.
Для изменения владельца файла существует команда chown
:
chown имя файл
Через параметр имя
определяется пользователь, которому нужно передать права на указанный файл. Например, давайте сделаем владельцем файла test администратора root. Для этого нужно выполнить следующую команду:
chown root test
Изменить можно и группу, к которой принадлежит файл. Для этого выполните команду chgrp
:
chgrp имя файл
Здесь задается имя группы, которой предоставляются права на указанный файл. Например, для файла test укажите группу администратора root с помощью такой команды:
chgrp root test
4.1.3. Правила безопасности
При назначении прав на доступ к файлам и папкам вы должны следовать принципу минимализма, описанному в разд. 2.10.1 . Чтобы это правило действовало, по умолчанию должно быть запрещено все. Открываем доступ только на то, что необходимо, и ничего лишнего. Если файл не должен быть виден пользователю, то нельзя разрешать даже его отображение в дереве каталогов.
Любые лишние объекты могут оказаться фатальными для безопасности системы не только с точки зрения взлома, но и утечки информации. Например, файлы бухгалтерской отчетности должны быть доступны только для тех, кто с ними работает. Если показать эти документы всем, то финансовые данные, возможно, станут достоянием общественности, и это нежелательным образом отразится на благосостоянии компании.
Самое главное для защиты вашей системы — не дать пользователям возможность изменять системные файлы. В Linux основные конфигурационные файлы находятся в каталоге /etc. Только администратор root должен иметь право их модифицировать. Производители дистрибутивов настраивают систему по умолчанию именно так, и не следует повышать статус пользователей без особой надобности.
Читать дальше
Конец ознакомительного отрывка
Купить книгу