Как парольно защитить папку в Linux с помощью chown и chmod

Короткое определение: владелец — учётная запись, которой принадлежат файлы; группа — набор пользователей; права — чтение, запись и выполнение.
Зачем это работает и что даёт
Unix-подобные системы строят управление доступом вокруг владельца, группы и набора прав. У файла или каталога есть три набора прав: для владельца (u), для группы (g) и для остальных (o). Изменив владельца на отдельного пользователя и убрав права для g и o, вы заставляете систему требовать учётные данные для доступа.
Плюсы:
- Быстро и встроенно — не требует дополнительного ПО.
- Простая реализация для временной или локальной защиты.
Минусы:
- Не шифрует данные — файлы остаются в явном виде на диске.
- Не защищает от root или физического доступа к диску.
- Нужны правильные пароли и ограничения для административных учётных записей.
Создание отдельного пользователя для защиты папки
Мы создадим учётную запись, которой станет принадлежать защищаемая папка. Она будет требовать пароль, когда кто-то попытается войти под ней или использовать sudo.
- Создайте пользователя без домашней папки:
sudo useradd --no-create-home protector- Установите надёжный пароль для нового пользователя:
sudo passwd protectorВажно: используйте сложный пароль и храните его в менеджере паролей.
Изменение владельца папки
Чтобы собственник папки был не ваша обычная учётная запись, а только что созданный пользователь, используйте chown.
sudo chown -R protector:protector testdir/
Синтаксис chown: chown [владелец][:группа] файл…
Параметр -R делает операцию рекурсивной и применяет изменения ко всем вложенным файлам и каталогам.
Удаление прав у группы и остальных
Теперь запретим доступ всем, кроме владельца. Используем chmod:
sudo chmod -R og-rwx testdir/
Разбор: og-rwx значит «изъять (минус) права чтения, записи и выполнения у группы (g) и прочих (o)».
В результате только пользователь protector сможет читать и менять содержимое папки, если другие не получат root-доступ или права sudo.
Практическое руководство шаг за шагом
- Выберите папку, которую хотите защитить (например, /home/you/secret).
- Создайте отдельного системного пользователя без домашней директории.
- Установите надёжный пароль для этого пользователя.
- Выполните sudo chown -R protector:protector /путь/к/папке.
- Выполните sudo chmod -R og-rwx /путь/к/папке.
- Проверьте права через ls -la /путь/к/папке.
- Не оставляйте сеанс root или пользователя с sudo активным, когда другие пользуются компьютером.
Критерии приёмки
- ls -la показывает владельца protector и права rwx—— для каталога.
- Другие пользователи при попытке читать файлы получают отказ в доступе.
- Доступ для владельца возможен только после входа под protector или при получении sudo у владельца (и ввода пароля).
Ограничения и когда это не сработает
Контрпримеры и случаи отказа:
- Пользователь с доступом root или с консольным входом в систему всегда сможет снять ограничения и прочитать файлы.
- Физический доступ к диску (например, загрузка с live CD или подключение диска к другой машине) даёт возможность обойти эти права.
- Если у вашей обычной учётной записи есть sudo без запроса пароля (NOPASSWD) или длительная сессия sudo, защита слабает.
- Неправильно настроенные маски umask и ACL (setfacl/getfacl) могут оставить файлы доступными.
Важно: chown и chmod не шифруют данные. Они подходят для экспресс-защиты от соседей по компьютеру, но не для секретной информации.
Альтернативы и более надёжные решения
- Шифрование раздела с помощью LUKS (recommended для полного диска или раздела). Преимущество: данные зашифрованы и недоступны без ключа даже при физическом доступе.
- Пользовательское шифрование (e.g., ecryptfs, gocryptfs, veracrypt) — шифрует только каталог или контейнер.
- Управление доступом на основе ACL — даёт гибкие права для отдельных пользователей и групп (setfacl/getfacl).
- Контейнеры и виртуальные машины — изолируют данные в отдельной среде.
Критерий выбора: если данные должны быть конфиденциальны при физическом доступе — используйте шифрование; если нужно только предотвратить случайный просмотр — достаточно chown/chmod.
Руководство по безопасности и практики жёсткой настройки
- Убедитесь, что root и административные учётные записи защищены сильными паролями.
- Отключите sudo без пароля (удалите NOPASSWD) и настройте короткий таймаут сессии sudo (в /etc/sudoers или через sudoers.d).
- Регулярно проверяйте активные сессии и входы (who, last).
- Ограничьте физический доступ к устройству и храните резервные копии в зашифрованном виде.
- Если требуется аудит, включите системный аудит (auditd) для отслеживания доступа к защищённой папке.
Чек-лист для ролей
Для обычного пользователя:
- Создать отдельного пользователя protector.
- Установить надёжный пароль и сохранить его в менеджере паролей.
- Выполнить chown и chmod как описано.
- Выйти из учётных записей с административными правами.
Для администратора:
- Проверить настройки sudo и отключить NOPASSWD.
- Настроить политику паролей и таймауты для sudo.
- Рассмотреть шифрование раздела или каталога.
- Настроить бэкап и аудит.
Тесты и критерии приёмки
Тестовые случаи:
- Попытка чтения файлов под другим пользователем — ожидаемый результат: доступ запрещён (EACCES).
- Попытка получить содержимое каталога с помощью root — ожидаемый результат: root может читать (тестер отмечает это как ограничение).
- Попытка загрузиться с live CD и прочитать файлы — ожидаемый результат: файлы доступны, что демонстрирует, что chown/chmod не защищают от физического доступа.
Краткая шпаргалка команд
- Создать системного пользователя без домашней папки:
sudo useradd --no-create-home protector- Установить пароль:
sudo passwd protector- Поменять владельца рекурсивно:
sudo chown -R protector:protector /путь/к/папке- Убрать права у группы и остальных рекурсивно:
sudo chmod -R og-rwx /путь/к/папке- Проверить права:
ls -la /путь/к/папкеКраткий глоссарий
- root: суперпользователь с полными правами.
- sudo: инструмент для временного выполнения команд от имени root.
- chown: изменить владельца файла/папки.
- chmod: изменить права доступа.
- LUKS: механизм шифрования для блоков/разделов.
Резюме
Метод с chown и chmod полезен для быстрой защиты каталога от случайного просмотра другими пользователями. Он не шифрует данные и не защищает от root или физического доступа к диску. Для реальной конфиденциальности рассматривайте шифрование разделов (LUKS) или шифрование контейнеров. Следите за безопасностью учётных записей и настройками sudo.
Важно: используйте этот подход как временную или вспомогательную меру, а не как единственную линию защиты для критичных данных.
Похожие материалы
Приватный режим в браузерах Android
Как защитить беспроводной роутер
Темная тема в Google Calendar — Android, iPhone, веб
Неподписанные драйверы Windows 10 — как установить
Outlook: исправление резкого роста CPU