ДЕНЬ 04: Страж крепости

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать на 4-й день в LabEx Corporation, Страж крепости! После вашей блестящей детективной работы вчера, когда вы решили критические проблемы проекта «Феникс» (Project Phoenix), технический директор компании лично назначил вас руководителем службы безопасности всего проекта.

«Мы не можем позволить себе еще один инцидент с безопасностью», — объясняет технический директор во время утреннего брифинга. — «Ваше расследование показало, что наша предыдущая система безопасности была неадекватной. Саре Чен и команде разработчиков нужна пуленепробиваемая среда, чтобы завершить проект "Феникс" в срок».

Недавний кризис подчеркнул необходимость принятия надежных мер безопасности. К команде присоединится новый подрядчик, чтобы ускорить разработку, и вы должны убедиться, что контроль доступа настроен идеально. Вам предстоит создать безопасные файловые системы, назначить точных владельцев, установить детальные права доступа и создать рабочие пространства для совместной работы, которые защитят интеллектуальную собственность TechNova.

Успех проекта «Феникс» — и будущее компании — теперь зависит от цифровой крепости, которую вы построите сегодня. Давайте обезопасим эту систему!

Создание защищенного файла для нового проекта

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

Задачи

  • Создайте новый пустой файл с именем project_keys.txt внутри директории ~/project/phoenix_project.
  • Установите права доступа к этому файлу так, чтобы только владелец имел права на чтение и запись, а никто другой (даже пользователи из той же группы) не имел никакого доступа.

Требования

  • Файл должен называться project_keys.txt.
  • Файл должен находиться по пути ~/project/phoenix_project/project_keys.txt.
  • Используйте команду chmod с числовой нотацией для установки прав доступа.

Подсказки

  • Вы можете создать пустой файл с помощью команды touch.
  • Помните числовые значения прав доступа: чтение (4), запись (2) и выполнение (1).
  • Итоговые права доступа должны быть 600 (чтение+запись для владельца, ничего для группы и остальных).

Примеры

После выполнения этой задачи вы должны увидеть что-то вроде:

$ ls -l ~/project/phoenix_project/
-rw------- 1 labex labex 0 Sep 3 16:03 project_keys.txt

Права доступа к файлу отображаются как -rw-------, что означает:

  • Владелец имеет права на чтение и запись
  • Группа не имеет прав
  • Остальные не имеют прав

Назначение владельцев ресурсов проекта

Проект «Феникс» возглавляет команда разработчиков Сары Чен, а технический руководитель dev_lead управляет основной работой по разработке. Этот пользователь принадлежит к группе developers, с которой вы работали всю неделю. Вам необходимо передать права владения всеми файлами и директориями проекта, чтобы обеспечить надлежащий контроль доступа.

Задачи

  • Измените владельца директории ~/project/phoenix_project и всего её содержимого на пользователя dev_lead.
  • Измените группу-владельца директории ~/project/phoenix_project и всего её содержимого на группу developers.

Требования

  • Владельцем-пользователем должен быть dev_lead.
  • Владельцем-группой должна быть developers.
  • Изменение владельца должно применяться рекурсивно ко всем файлам и поддиректориям внутри ~/project/phoenix_project.
  • Вы должны использовать команду chown.

Подсказки

  • Команда chown может изменять пользователя и группу одновременно, используя синтаксис user:group.
  • Найдите в команде chown опцию, позволяющую работать с файлами и директориями рекурсивно. Команда man chown вам в помощь.
  • Поскольку файлы в настоящее время принадлежат root, вам потребуется использовать sudo для изменения владельца.

Примеры

После выполнения этой задачи вы должны увидеть что-то вроде:

$ ls -ld ~/project/phoenix_project/
drwxrwxr-x 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

$ ls -l ~/project/phoenix_project/
total 0
drwxrwxr-x 2 dev_lead developers 27 Sep 3 16:00 docs
-rw------- 1 dev_lead developers 0 Sep 3 16:03 project_keys.txt
drwxrwxr-x 2 dev_lead developers 6 Sep 3 16:00 src

Теперь все файлы и директории должны принадлежать:

  • Пользователю: dev_lead
  • Группе: developers

Обеспечение безопасности основной директории проекта

Теперь, когда владельцы назначены правильно, вам нужно установить базовые права доступа для основной директории проекта ~/project/phoenix_project. Политика следующая: владелец должен иметь полный контроль, группа должна иметь возможность просматривать список файлов и входить в директорию, а посторонние не должны иметь никакого доступа.

Задачи

  • Установите права доступа для директории ~/project/phoenix_project.

Требования

  • Владелец (dev_lead) должен иметь права на чтение, запись и выполнение.
  • Группа (developers) должна иметь права на чтение и выполнение.
  • Остальные не должны иметь никаких прав.
  • Используйте команду chmod для применения этих прав к самой директории ~/project/phoenix_project (не рекурсивно).
  • Поскольку директория принадлежит dev_lead, вам может потребоваться использовать sudo для изменения прав доступа.

Подсказки

  • Право «выполнение» для директории позволяет переходить в неё с помощью cd.
  • Рассчитайте числовое значение прав доступа для владельца, группы и остальных.
  • Владелец (rwx) = 4+2+1 = 7
  • Группа (r-x) = 4+0+1 = 5
  • Остальные (---) = 0+0+0 = 0

Примеры

После выполнения этой задачи вы должны увидеть что-то вроде:

$ ls -ld ~/project/phoenix_project/
drwxr-x--- 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

Права доступа к директории отображаются как drwxr-x---, что означает:

  • Владелец (dev_lead) имеет права на чтение, запись и выполнение
  • Группа (developers) имеет права на чтение и выполнение
  • Остальные не имеют прав

Это означает:

  • dev_lead имеет полный доступ к директории
  • Члены группы developers могут просматривать содержимое и входить в директорию
  • Посторонние не имеют доступа к директории

Настройка прав для совместной работы команды разработчиков

Примечание: Убедитесь, что вы сначала выполнили Шаг 2, который устанавливает владельцев всех директорий проекта (включая src) как dev_lead:developers. Этот шаг основывается на этих настройках владельцев.

Команде разработчиков необходимо эффективно сотрудничать внутри директории ~/project/phoenix_project/src. Чтобы обеспечить бесперебойную совместную работу, любой новый файл или директория, созданные внутри src, должны автоматически принадлежать группе developers. Это специальное право доступа влияет только на владельца-группу. Владельцем-пользователем по-прежнему будет учетная запись, создавшая файл, а права на чтение/запись файла по-прежнему будут зависеть от umask этого пользователя.

Задачи

  • Установите специальное право доступа на директорию ~/project/phoenix_project/src, которое заставляет все новые файлы и поддиректории, созданные внутри неё, наследовать группу-владельца от самой директории src (то есть developers).

Требования

  • Решение должно гарантировать, что новые файлы в ~/project/phoenix_project/src автоматически наследуют группу developers.
  • Вы должны использовать команду chmod для установки этого специального права доступа.
  • Возможно, вам потребуется использовать sudo для установки прав на директории, принадлежащие другим пользователям.

Подсказки

  • Это специальное право доступа называется битом «set group ID» или setgid.
  • Вы можете применить бит setgid, используя символьную (g+s) или числовую нотацию.
  • В числовой нотации бит setgid имеет значение 2. Он ставится перед тремя стандартными цифрами прав доступа (например, 2770).

Примеры

После выполнения этой задачи вы должны увидеть что-то вроде:

$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/

Буква s на позиции выполнения группы указывает на то, что установлен бит setgid и группа имеет право на выполнение. Теперь, когда вы создаете новый файл:

$ touch ~/project/phoenix_project/src/new_file.txt
$ ls -l ~/project/phoenix_project/src/new_file.txt
-rw-rw-r-- 1 labex developers 0 Apr 15 18:28 /home/labex/project/phoenix_project/src/new_file.txt

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

Права доступа показывают:

  • Владелец (dev_lead) имеет права на чтение и запись
  • Группа (developers) имеет права на чтение и запись
  • Остальные не имеют прав
  • Строчная s на позиции выполнения группы указывает на то, что установлен бит setgid и группа имеет право на выполнение

Резюме

Выдающаяся работа, Страж крепости! Вы успешно создали непробиваемый фундамент безопасности для проекта «Феникс». Технический директор и Сара Чен поражены вашей комплексной реализацией системы безопасности. Директория проекта теперь представляет собой крепость, которая защитит интеллектуальную собственность TechNova, обеспечивая при этом беспрепятственную совместную работу.

В ходе этого задания вы освоили критически важные навыки безопасности Linux:

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

Эти продвинутые навыки безопасности доказали вашу готовность к выполнению обязанностей старшего системного администратора. Завтра вы примете свой последний вызов в качестве Хранителя ключей, управляя человеческим фактором безопасности проекта «Феникс» путем контроля доступа пользователей к системе!

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться