Перейти к содержимому

Команды

chmod в Linux: как изменить права доступа (755, 644, 600, +x)

chmod (change mode) меняет права доступа к файлу или каталогу: кто может его читать, изменять и запускать. Права в Linux задаются отдельно для владельца (u), группы (g) и всех остальных (o).

Синтаксис

chmod [-R] ПРАВА ФАЙЛ...

Права можно записать двумя способами.

Символьная запись: поменять одно право

ПримерЧто делает
chmod u+x script.shвладельцу добавить выполнение
chmod +x script.shвыполнение всем (с учётом umask)
chmod g-w report.txtгруппе убрать запись
chmod o-rwx secret.txtостальным убрать все права
chmod go= secret.txtгруппе и остальным — никаких прав
chmod a+r public.txtвсем добавить чтение

Кому: u — владелец, g — группа, o — остальные, a — все. Действие: + добавить, - убрать, = установить ровно так. Права: r чтение, w запись, x выполнение.

Восьмеричная запись: задать все права сразу

Каждая цифра — сумма: r = 4, w = 2, x = 1. Первая цифра — владелец, вторая — группа, третья — остальные.

РежимПраваТипичное применение
755rwxr-xr-xпрограммы, скрипты, каталоги сайта
644rw-r--r--обычные файлы, конфигурация
700rwx------личный каталог, ~/.ssh
600rw-------закрытые ключи, файлы с паролями
640rw-r-----конфиги, которые читает служебная группа
777rwxrwxrwxпочти никогда — см. ниже

Четвёртая цифра слева задаёт особые биты: 4755 — SUID, 2770 — SGID, 1777 — sticky bit.

Рекурсивно

chmod -R go-w /var/www/site          # убрать запись группе и остальным во всём дереве
find /var/www -type d -exec chmod 755 {} +   # каталогам — 755
find /var/www -type f -exec chmod 644 {} +   # файлам — 644

chmod -R 755 на всё дерево делает исполняемыми и обычные файлы. Чтобы задать разные права каталогам и файлам, используйте find, как в примере выше.

Как проверить результат

ls -l file.txt         # -rw-r--r-- 1 student student ...
ls -ld dir/            # права самого каталога
stat -c %a file.txt    # 644

Частые ошибки

  • chmod 777, «чтобы заработало». Любой пользователь системы сможет изменить файл. Если это скрипт, который запускает root, — это готовое повышение привилегий.
  • Каталог без x. Имена файлов видно, но войти в каталог и открыть файлы нельзя.
  • Operation not permitted. Менять права может только владелец файла или root.
  • SSH не принимает ключ. У ~/.ssh должны быть права 700, у ключей — 600.

С точки зрения безопасности

Неправильные права — одна из самых частых находок пентестера: доступные всем на запись скрипты, читаемые всеми бэкапы и ключи. Поиск таких файлов:

find / -perm -o+w -type f 2>/dev/null | grep -v '^/proc'

Обновлено 20 октября 2026 г.

chmod в Linux: как изменить права доступа (755, 644, 600, +x) — CyberLab