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