Что такое права доступа на файлы и директории в Linux
Что проверяют
Хватит ли вам самостоятельности на стенде: понять, почему скрипт не запускается, отчёт не пишется, а клиент отказывается брать ключ, и не идти с этим к администратору. Для тестировщика это ежедневная бытовая тема, поэтому спрашивают коротко и ждут уверенности.
Как отвечать
У каждого файла есть владелец, группа и девять бит прав тремя тройками: владелец, группа, остальные. Внутри тройки чтение, запись, исполнение. Команда ls -l показывает их строкой вида rwxr-xr-x, меняет права chmod, владельца chown, группу chgrp.
Числовая запись это те же биты: четыре чтение, два запись, один исполнение, дальше сумма по каждой тройке. Отсюда 644 для обычного файла, 755 для скрипта и каталога, 600 для приватного ключа.
У каталогов те же буквы означают другое, и это главное, что стоит сказать. Бит исполнения разрешает войти внутрь и обратиться к файлу по имени, бит чтения разрешает получить список имён, бит записи разрешает создавать и удалять записи. Право на удаление файла определяется каталогом, а не самим файлом: файл, закрытый от записи, спокойно удаляется, если на каталог есть запись и вход.
Для стенда полезно знать про umask, который задаёт права новых файлов, про бит закрепления на общем временном каталоге, запрещающий удалять чужое, и про то, что в смонтированном в контейнер каталоге права считаются по числовому идентификатору пользователя, а не по имени.
Где спотыкаются
Чинят любую ошибку доступа выдачей всех прав всем. На стенде это скрывает настоящую причину, а в отчёте о тестировании безопасности выглядит как найденный дефект конфигурации.
Ставят права на файл и забывают про каталоги выше. Без бита входа на промежуточном каталоге путь недоступен целиком, сколько бы прав ни было у самого файла.
Копируют приватный ключ или конфиг на стенд как есть и получают отказ клиента: слишком открытый файл ключа не принимается, нужны права только для владельца и совпадение владельца с тем, кто запускает команду.