Короткий ответ Строка прав вида -rwxr-xr-- делится на владельца, группу и остальных по три символа каждая: r — чтение, w — запись, x — выполнение (для каталога x означает право заходить внутрь); первый символ указывает тип файла (- обычный, d каталог, l symlink). Как это работает подробнее Ядро проверяет права при каждой попытке доступа к файлу, сопоставляя UID/GID процесса с владельцем и группой файла и выбирая соответствующий набор из трёх бит; для каталогов x разрешает выполнение cd и доступ к содержащимся файлам по имени, а r разрешает листинг содержимого. Пример кода Что использовать на практике Практика. при диагностике Permission denied всегда проверяют оба уровня: права самого файла и права всех родительских каталогов на пути к нему (нужен x на каждый уровень), а не только финальный файл. Подводные камни Риск. Частая ошибка — дать файлу право на чтение (r), забыв, что без x на родительском каталоге пользователь всё равно не сможет до него добраться по полному пути.