chmod и восьмеричная нотация
Тема дорожной карты · Linux & Unix Fundamentals
chmod — это утилита командной строки Linux, которая позволяет менять права доступа к файлам и директориям. Восьмеричная нотация используется для представления этих прав в виде чисел, что позволяет удобно и быстро менять доступ к файлам. Это важно для обеспечения безопасности и контроля доступа в системе.
Как это работает
chmod использует восьмеричную нотацию для представления прав доступа к файлам. Восьмеричная нотация состоит из четырёх цифр, где первая цифра указывает на специальные биты (например, setuid или setgid), а остальные три цифры представляют права для владельца, группы и остальных пользователей. Для каждого из этих трёх групп есть три бита: read (4), write (2) и execute (1). Например, команда chmod 750 script.sh устанавливает права rwx для владельца, r-x для группы и --- для остальных пользователей.
Существуют также символические формы команд chmod, которые позволяют изменять права доступа более удобным образом. Например, команда chmod g+w добавляет право записи для группы, а команда chmod o-rx убирает права чтения и выполнения для остальных пользователей.
Когда применять
Правила по умолчанию для настройки прав доступа включают установку прав 644 для файлов, 755 для директорий и 600 для секретных файлов. Группы используются для предоставления общего доступа, но добавление большого количества пользователей в группы, такие как wheel или sudo, может быть небезопасным. Установка прав 777 для файлов или директорий почти всегда является ошибкой, так как это предоставляет всем пользователям полный доступ к файлам.
Для более тонкого управления правами доступа можно использовать расширенные атрибуты (ACL), которые позволяют задать более сложные правила доступа. Например, для CI-пайплайнов и деплоя можно использовать ACL вместо рекурсивного chmod. Также можно использовать возможности (capabilities), чтобы предоставить определённые права доступа без необходимости предоставления полного доступа от имени root.
Типичные ошибки
Типичные ошибки при использовании chmod и восьмеричной нотации включают установку прав доступа 777 для файлов или директорий, что может привести к уязвимости системы. Также ошибкой может быть использование команды chown -R для изменения владельца на неправильной директории, что может привести к потере возможности стать root. Непонимание влияния umask на права доступа новых файлов также является распространённой ошибкой.