Введение / Зачем это нужно
В Linux вся безопасность основана на разрешениях. Понимание того, как работают владельцы, группы и права доступа, необходимо для безопасной работы с файлами, скриптами и системными настройками. После выполнения этого гайда вы сможете быстро просматривать, изменять и проверять права, защищая свои данные от случайного изменения или несанкционированного доступа.
Требования / Подготовка
- Доступ к терминалу (SSH, VNC или локальная консоль).
- Базовое знание команд Linux (
ls,cd,sudo). - Доступ к файлам/директориям, для которых нужно изменить права (обычно ваши собственные).
- Необходимые инструменты уже установлены (
chmod,chown,ls,stat).
Пошаговая инструкция
Шаг 1: Просмотр текущих прав доступа
Перед изменением прав всегда их просмотрите.
ls -l /path/to/file
Команда ls -l показывает права в удобном формате rwxrwxrwx, а stat предоставляет более детальную информацию.
Шаг 2: Изменение прав с помощью chmod
chmod позволяет быстро задать права с помощью числовой маски.
# Пример: предоставить чтение/исполнение всем, запись только владельцу
chmod 755 script.sh
Результат: владелец может читать/писать/исполнять (rwx), группа и остальные — читать/исполнять (r-x).
Шаг 3: Изменение владельца и группы с помощью chown
Если файл принадлежит не вам, смените владельца и группу.
chown newuser:newgroup document.pdf
Для изменения прав во всей директории используйте рекурсивный режим:
chown -R user:group /var/www/
Шаг 4: Применение битовой маски для директории
Директории часто требуют других масок, например 750.
chmod 750 project/
После команды владелец имеет полные права (rwx), группа — чтение/исполнение (r-x), остальные — нет доступа.
Шаг 5: Проверка результата изменения прав
После внесения изменений убедитесь, что права изменились так, как ожидалось.
ls -ld filename
# или
getfacl filename
getfacl показывает расширенные ACL, если они настроены.
Проверка результата
Выполните перечисленные выше команды, чтобы убедиться, что права соответствуют ожидаемым. Если что-то не так, повторите предыдущие шаги, исправив маску или владельца.
Возможные проблемы
- «Доступ запрещён» при запуске скрипта — вероятно, скрипт не имеет права исполнения (
x). Добавьте его:chmod +x script.sh. - «Не удаётся изменить владельца: Нет таких файлов или каталогов» — убедитесь, что путь корректен и у вас есть права sudo для изменения владельца.
- «Права не применяются» после изменения — проверьте, что вы не используете
chmodв сочетании с ACL (setfacl). Для ACL используйтеsetfacl -m u:username:rwx.
Сохраните этот гайд в закладках — теперь у вас под рукой есть пошаговое руководство по управлению правами доступа в Linux.