Как пользоваться
- Отметьте флажки чтения, записи и выполнения для владельца, группы и всех остальных.
- Или введите восьмеричное значение, например 640, либо символьную строку, например rw-r----- или -rw-r----- из вывода ls -l.
- При необходимости добавьте setuid, setgid или sticky bit либо выберите часто используемое значение.
- Введите имя файла и скопируйте команду chmod.
Как это работает
Каждый из трёх классов (владелец, группа, остальные) имеет три права. Чтение даёт 4, запись — 2, выполнение — 1; их сумма образует одну восьмеричную цифру, поэтому rwx = 7, r-x = 5 и r-- = 4. Три цифры образуют режим: 755 означает rwx для владельца и r-x для группы и остальных.
Необязательная четвёртая цифра в начале содержит специальные биты: 4 — setuid, 2 — setgid и 1 — sticky. В символической форме они занимают позицию выполнения: s для setuid или setgid, t для sticky. Заглавная S или T означает, что специальный бит установлен, а выполнение — нет; обычно это ошибка.
Поле символической записи принимает девять символов (rwxr-xr-x) или десятисимвольную форму, которую выводит ls -l, где первый символ — тип файла (- для файла, d для каталога) — здесь игнорируется. Также принимаются конечные . или + из SELinux или ACL.
Показываются две команды: восьмеричная форма, которая задаёт все биты сразу, и эквивалентная символьная форма, например u=rwx,g=rx,o=rx. Имена файлов с пробелами и другими специальными символами заключаются в кавычки для оболочки; начальный ~/ и подстановочные знаки * и ? не заключаются в кавычки, чтобы оболочка могла их развернуть. При использовании GNU chmod восьмеричный режим для каталога не снимает уже установленные биты setuid или setgid; если их нужно удалить, используйте символьную форму или пятизначный режим, например 00755.
Примеры
Веб-файлы и папки
Файлы, которые веб-сервер только читает, обычно имеют режим 644 (rw-r--r--), а каталоги — 755 (rwxr-xr-x), чтобы в них можно было войти и просмотреть их.
Приватный ключ SSH
SSH отказывается принимать ключи, доступные для чтения остальным. Отметьте только чтение и запись для владельца, чтобы получить 600 и команду chmod 600 ~/.ssh/id_ed25519 (укажите путь как имя файла).
Общий каталог для загрузки
Каталоги в стиле /tmp используют 1777 (rwxrwxrwt): все могут создавать файлы, но sticky bit не даёт пользователям удалять чужие файлы.
Часто задаваемые вопросы
В чём разница между 755 и 775?
При 775 группа также может записывать (создавать, изменять и удалять файлы в каталоге). При 755 записывать может только владелец; группа и остальные могут читать и выполнять.
Почему следует избегать 777?
777 позволяет любому пользователю в системе изменять или заменять файл. На веб-сервере это может позволить другому аккаунту или скомпрометированному процессу внедрить код. Давайте право записи только владельцу или определённой группе.
Что означает выполнение для каталога?
Для каталога выполнение (x) означает право входить в него и получать доступ к файлам внутри. Только чтение позволяет просматривать имена, но не открывать файлы.
Изменяет ли это права на моём компьютере?
Нет. Инструмент только рассчитывает значения и формирует текст команды. Команду вы выполняете сами в терминале.
Конфиденциальность
Всё вычисляется в вашем браузере. Введённое имя файла никуда не отправляется, не сохраняется и не используется в аналитике.