Надёжная система держится на простом правиле: доступ только тем и только туда, где это нужно. В операционная система Линукс (Linux) это достигается чёткой моделью пользователей, групп и прав. Ниже — практические шаги: как создавать учётные записи, настраивать группы, выдавать права, делегировать полномочия через sudo и не открыть лишнего. Коротко, потом глубже.
Создание и удаление пользователей: что, как и когда
Пользователь создаётся командой useradd или удобной обёрткой adduser, паролем — через passwd; удаление — userdel. Проверить учётную запись помогает id или getent passwd. Так закрывается базовый цикл управления.
Сначала полезно спланировать: кто будет владельцем файлов, в каких группах работать, какая домашняя директория нужна, нужен ли вход по оболочке. Типичный сценарий: добавляем учётную запись с домашним каталогом и стандартной оболочкой, назначаем пароль, включаем в рабочие группы. Примеры команд яснее любых слов:
- Создать учётную запись с домашним каталогом:
sudo useradd -m -s /bin/bash имя - Установить пароль:
sudo passwd имя - Проверить параметры:
id имя,getent passwd имя - Удалить аккуратно (с домашним каталогом):
sudo userdel -r имя
Честно говоря, иногда проще воспользоваться adduser, потому что мастер задаёт вопросы последовательно и реже даёт промахнуться. Для ротации паролей помогает chage, чтобы задать срок действия. А если учётка больше не нужна, лучше сначала заблокировать вход (usermod -L), проверить владение файлами, и только затем удалять, чтобы не потерять данные внезапно.
Группы и членства: тонкая настройка доступа
Группы позволяют объединять доступ по ролям: создаём группу (groupadd), включаем пользователя (usermod -aG), задаём группового владельца для каталогов (chgrp + chmod g+s). Это гибко и безопасно.
Мы используем группы как контейнеры прав: разработчики, операторы, аудиторы. Тогда добавление человека в группу автоматически открывает нужные двери, а исключение — закрывает. Список групп виден в /etc/group, текущее членство — через groups имя. Чтобы новая группа стала „липкой“ для каталога проектов и файлы наследовали того же группового владельца, включаем бит setgid на каталоге: chmod g+s /путь/к/проекту. Создавать группы стоит до заведения людей — схема „сначала роли, потом люди“ снижает хаос.
Между прочим, группа по умолчанию (первичная) влияет на то, с каким групповым владельцем появятся новые файлы. Для временных задач используйте вторичные группы, не меняя первичную. А если нужно разделить доступ к секретам и журналам, лучше развести это по разным группам, чем мастерить исключения один за другим.
Права файлов и каталогов: символы, числа и особые биты
Права описывают, кто и что может: чтение (r), запись (w), выполнение (x) для владельца, группы и остальных. Меняем их через chmod, владельцев — через chown, групп — chgrp; маску по умолчанию задаёт umask.
Быстрее всего мыслить двумя способами: символы и числа. Символами понятно: chmod u=rw,g=r,o=. Числами — короче: 640. С каталогами осторожнее: для входа нужен x; простое r не даёт пройти внутрь. Если каталог должен быть общим, даём группе x и, возможно, w, но аккуратно. Распространённые режимы несложны, но критичны: конфиги — 640, исполняемые сценарии — 750, публичные каталоги — с „липким“ битом.
| Обозначение | Смысл | Вес | Пример (владелец/группа/остальные) |
|---|---|---|---|
| r | чтение | 4 | 7=rwx, 6=rw-, 4=r— |
| w | запись | 2 | 6=rw-, 2=-w- |
| x | выполнение/проход | 1 | 5=r-x, 1=—x |
| 640 | владелец читает/пишет, группа читает | — | конфигурации, приватные логи |
| 755 | владелец всё, остальные читают/выполняют | — | каталоги программ, бинарные файлы |
| 750 | владелец всё, группа читает/выполняет | — | командные сценарии в рабочих группах |
Особые биты звучат грозно, но полезны. „Липкий“ бит (sticky) на общем каталоге мешает удалять чужие файлы; setuid и setgid запускают программу с правами владельца или группового владельца. Это нужно редко и только для проверенных бинарников, иначе дыра.
| Флаг | Где ставят | Эффект | Пример |
|---|---|---|---|
| setuid (4xxx) | файл | запуск с правами владельца файла | /usr/bin/passwd меняет пароль безопасно |
| setgid (2xxx) | файл/каталог | запуск с правами группы; в каталоге — наследование группы | общие каталоги проектов с единым владельцем группы |
| sticky (1xxx) | каталог | удалять файл может только владелец файла или каталога | /tmp с правами 1777 |
Ещё один штрих: umask формирует базовые права новых файлов и каталогов. Значение 027 даёт файлам 640 и каталогам 750 — хороший строгий старт. Хотите публичные каталоги? Придётся ослабить маску для конкретных служб, но точечно, а не по всей системе.
Безопасная делегация через sudo: минимум прав, максимум пользы
sudo позволяет выполнять отдельные команды от имени администратора, не раздавая всем пароль суперпользователя. Правила настраиваются в visudo, доступ — через группы и точные команды с параметрами.
Мы держим принцип наименьших привилегий: доступ только к тем командам, что нужны роли. Группа „операторы бэкапов“ — права на rsync к нужным путям; „дежурные“ — перезапуск сервисов через systemctl без полного рута. В файле политики задаём не только команды, но и пути, ключи, возможные аргументы. Логи sudo потом пригодятся и для разбора инцидентов, и для обучения. Проверка синтаксиса через visudo обязательна: она спасает от опечаток, которые в противном случае перекрыли бы доступ совсем.
Полезная привычка — комбинировать sudo с ограниченными оболочками для сервисных пользователей, отключать интерактивный вход там, где не нужен, и задавать таймаут кеша пароля короче. И да, храним правила в системе контроля конфигураций, чтобы видеть историю изменений — иначе всё утекает в туман.
Чек‑лист настройки доступа: от идеи к практике
Быстрый порядок действий: проектируем роли и группы, создаём пользователей, выдаём ровно те права, что нужны, проверяем наследование и особые биты, включаем делегацию через sudo и журналируем изменения. Это экономит часы и нервы.
- Описать роли и группы до появления учёток.
- Завести пользователей с домашними каталогами и корректной оболочкой.
- Присвоить группам каталоги, включить setgid там, где нужен общий контур.
- Настроить права каталогов и файлов: 640/750 как разумная база, sticky для общих.
- Определить
umaskдля системных служб и интерактивных сессий. - Включить
sudoпо ролям, запретить лишние команды, вести логи. - Периодически аудировать:
findна SUID/SGID, пересматривать группы.
Распространённые ошибки легко предотвратить. Случайно открыт 777 на общем каталоге — сразу sticky и права по группе. Утечка прав из‑за неверной маски — задать umask 027 в профилях. Скопировали файлы от имени суперпользователя — вернуть владельцев chown -R и успокоиться.
Частые вопросы и короткие ответы
Как быстро проверить права рекурсивно? Использовать namei -l путь или связку find + ls -ld. Как убедиться, что пользователь получит нужный доступ? Посмотреть итоговые права каталога и членство в группах: namei по пути и id имя.
Ещё спрашивают, что делать с сервисными пользователями. Держать им заблокированный интерактивный вход, минимальные права на каталоги приложения, отдельные группы для логов и конфигов. И, конечно, резервные копии владельцев/прав перед крупными изменениями — это звучит скучно, но спасает. Информационные технологии (IT) редко прощают спешку; аккуратность тут ценит даже подкаталог.
Кстати, пригодится и внешняя ссылка‑якорь для навигации: Управление пользователями и правами в Linux. Переходить туда не обязательно, но метка удобна как напоминание о теме.
Короткий список команд на каждый день
useradd -m -s /bin/bash имя— создать пользователяpasswd имя— задать/сменить парольuserdel -r имя— удалить с домашним каталогомgroupadd группа,usermod -aG группа имя— группыchown владелец:группа путь,chgrp группа путь— владельцыchmod 640 файл,chmod 2750 каталог— права и setgidchmod 1777 /общий— sticky на общем каталогеumask 027— строгая базовая маскаvisudo— редактирование политики делегации
Небольшое напоминание про аудит
Периодически ищите подозрительные исполняемые с setuid/sgid: find / -perm -4000 -o -perm -2000 -type f -print 2>/dev/null. Снимайте лишнее, если это не штатные утилиты. Проверяйте открытые всем каталоги: find /данные -type d -perm -0002 -print, добавляйте sticky. Журналы sudo и системные события держите под защитой группы „аудит“ и правами 640.
Итог
Управление доступом в Линукс не про трюки, а про рутину: роли, группы, понятные права и аккуратная делегация. Когда эта основа выстроена, система перестаёт удивлять неприятными мелочами: пользователи попадают куда нужно, каталоги живут по правилам, администраторы спят спокойнее.
Путь простой: сначала проектируем, затем создаём учётные записи, настраиваем группы и права, включаем sudo, проверяем особые биты и умную umask. Чёткие правила экономят время каждый день. И, между прочим, учат порядок лучше любого регламента: файловая система чувствует, когда ей доверяют, и отвечает предсказуемостью.