Короткий ответ
В числовом режиме каждая цифра (от 0 до 7) кодирует сумму битов r=4, w=2, x=1 для владельца, группы и остальных; 644 означает rw- для владельца и r-- для группы и остальных. В символьном режиме используют u/g/o/a с операторами +/-/= и буквами rwx, например chmod u=rw,go=r file.
Как это работает подробнее
Числовой режим — это компактная запись трёх трёхбитных масок подряд; символьный режим декларативно изменяет только указанные биты, не трогая остальные, что удобно, когда нужно добавить/убрать одно конкретное право, не зная и не меняя текущие остальные.
Пример кода
commands.sh
chmod 644 report.txt
chmod u=rw,go=r report.txt # эквивалентная запись символьным режимомЧто использовать на практике
- Практика. числовой режим предпочитают для установки прав «с нуля» в скриптах (идемпотентно, понятен результат), а символьный — для точечных правок вроде «добавить исполняемость группе», не трогая права владельца.
Подводные камни
- Риск. Частая ошибка — использовать chmod 777 как «быстрое решение» проблем с правами: это даёт запись и выполнение всем пользователям системы, что является серьёзной дырой в безопасности, особенно для файлов, доступных через веб-сервер.