Команда chmod: как поменять права на файлы и папки
chmod меняет права на файл или папку: кто может читать, менять и запускать. Права задают числом, например 644, или буквами, например u+x. Ниже — примеры для сайта и скриптов и что делать, если chmod выдаёт ошибку.
Содержание 9
Как устроена команда
chmod ПРАВА ФАЙЛВместо ПРАВА — число или буквы, вместо ФАЙЛ — имя файла или путь к нему. Файлов можно указать несколько через пробел. Что значат права, рассказано в справочнике Права на файлы в Linux: rwx, 644 и 755.
Менять права может владелец файла. Если файл принадлежит другому пользователю, поставьте перед командой sudo — иначе chmod напишет Operation not permitted. Владельца покажет ls -l — третья колонка.
Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter.
Права числом
Три цифры — права владельца, группы и остальных. 4 — чтение, 2 — запись, 1 — выполнение, цифры складываются.
| Команда | Что получится |
|---|---|
chmod 644 index.html | Менять файл можете только вы, читать — все. Так ставят файлам сайта |
chmod 755 deploy.sh | Менять скрипт можете только вы, запускать и читать — все |
chmod 600 .env | Читать и менять файл можете только вы. Так ставят файлам с паролями |
chmod 700 backups | В папку backups можете заходить только вы |
Если цифр меньше трёх, недостающие chmod считает нулями слева: chmod 44 — то же, что chmod 044. Пишите все три цифры, чтобы не ошибиться.
Права буквами
Буквенная запись меняет только то, что указано, остальные права остаются прежними. Она состоит из трёх частей:
- кому:
u— владельцу,g— группе,o— остальным,a— всем; - что сделать:
+— добавить,-— убрать,=— поставить ровно такие права; - какие права:
r,w,x.
| Команда | Что делает |
|---|---|
chmod u+x deploy.sh | Разрешает владельцу запускать скрипт |
chmod a+x deploy.sh | Разрешает запускать скрипт всем |
chmod go-w index.html | Запрещает группе и остальным менять файл |
chmod o-r .env | Запрещает остальным читать файл |
chmod u=rw,go=r index.html | Ставит ровно rw-r--r-- — то же, что 644 |
Если не указать, кому, — chmod +x deploy.sh, — chmod поменяет права для всех, кроме тех, что запрещает настройка umask. Чтобы результат не зависел от umask, пишите букву явно: u+x или a+x.
Как увидеть, что изменилось: ключ -v
chmod -v 755 deploy.shОтвет:
mode of 'deploy.sh' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)chmod сообщает, какие права были и какие стали — числом и буквами. Ноль впереди — четвёртая цифра для особых режимов. Ключ -c печатает такую строку только для файлов, у которых права действительно поменялись.
Права на папку и всё внутри: ключ -R
Ключ -R меняет права у папки и всего, что в ней лежит. Безопасный пример для сайта:
sudo chmod -R a+rX /var/www/example.coma+r разрешает всем читать файлы, а X — большая буква — даёт право x только папкам и тем файлам, у которых оно уже было. Так nginx сможет заходить во все папки сайта, а обычные файлы не станут запускаемыми.
chmod -R 755 и chmod -R 644 на папку сайта. Первая команда сделает запускаемыми все файлы. Вторая уберёт у папок право x: сайт ответит 403, а вы не сможете открыть файлы в этих папках без sudo.Папкам 755, файлам 644
Чтобы поставить правильные права всему сайту — папкам и файлам по отдельности, — используйте команду find:
sudo find /var/www/example.com -type d -exec chmod 755 {} +sudo find /var/www/example.com -type f -exec chmod 644 {} +Первая команда находит все папки (-type d) и ставит им 755, вторая — все файлы (-type f) и ставит им 644. Если на сайте есть скрипты, которые нужно запускать, после этого верните им право x: sudo chmod u+x и путь к скрипту.
sudo поменяет права всему, что найдёт по этому пути.Ошибки и как их исправить
Operation not permitted
chmod: changing permissions of 'index.html': Operation not permittedФайл принадлежит другому пользователю. Повторите команду, поставив в начале sudo. Подробнее — в разборе Operation not permitted.
No such file or directory
chmod: cannot access 'index.htm': No such file or directoryФайла с таким именем нет в текущей папке. Сверьте имя с ответом команды ls: буквы, регистр, расширение. Или укажите полный путь к файлу.
invalid mode
Если в правах опечатка — например, chmod 8644 index.html или chmod u+z index.html, — chmod напишет invalid mode и ничего не поменяет. Цифры в правах — только от 0 до 7, буквы — из таблиц выше.
Команды сверены со справкой Ubuntu 24.04, тексты ошибок — с исходным кодом coreutils 9.4 и bash 5.2.
Источники
- Справка chmod для Ubuntu 24.04 — буквы ugoa, rwxX, права числом и ключи -R, -v и -c.
- Справка find для Ubuntu 24.04 — условия -type d и -type f, действие -exec … {} +.
- Исходный код coreutils 9.4: chmod.c — тексты changing permissions of, cannot access, invalid mode и вывод ключа -v.
- Руководство GNU Coreutils: Mode Structure — что значат r, w и x для файлов и папок.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026