Получить доступ

Как устроены права доступа к файлам в Linux?

JuniorLinux и диагностика
Ещё спрашивают так:
  • Что означает chmod 755?
  • Что такое setuid?
Коротко

У файла есть владелец, группа и три набора прав — для владельца, группы и остальных: чтение (r = 4), запись (w = 2), выполнение (x = 1). chmod 755 — владелец rwx (7), группа и остальные r-x (5). Для каталога x — право войти в него, r — увидеть список файлов.

  • chown меняет владельца, chgrp — группу
  • Удалить файл позволяет право записи в каталог, а не в сам файл
  • setuid на исполняемом файле — запуск с правами владельца (passwd); опасен

А ещё Секреты и ключи — 600 (только владелец), ssh ругается на более открытые права

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

**Чтение вывода ls -l:**

-rwxr-x---  1 app  devs  2048  ... deploy.sh
 │  │  │
 │  │  └─ остальные: нет прав
 │  └──── группа devs: чтение и выполнение
 └─────── владелец app: чтение, запись, выполнение

Особые биты:

  • setuid — программа выполняется с правами владельца файла;
  • setgid на каталоге — новые файлы наследуют группу каталога;
  • sticky bit на каталоге (/tmp) — удалить файл может только его владелец.

Практика:

  • сервисы запускают от отдельного пользователя без прав root;
  • ключи и файлы с секретами — 600 или 400;
  • umask задаёт права по умолчанию для новых файлов;
  • chmod -R 777 «чтобы заработало» — дыра в безопасности, а не решение.

Что хотят услышать

  • Три субъекта и три права, числовая запись.
  • Смысл прав для каталогов.
  • Особые биты и принцип минимальных прав.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем