Конвертер символьного и восьмеричного форматов chmod
Преобразуйте режимы chmod между восьмеричной и символьной записью: 755 в u=rwx,g=rx,o=rx и обратно. Также применяйте изменения, такие как u+x или go-w, к текущему режиму, обрабатывайте setuid, setgid и sticky bit, а также считывайте строки ls -l. Работает в браузере.
Ввод
Режим до изменения, используемый символьными режимами, например u+x. Операторы + и - добавляют права и удаляют их.Ограничивает символьные изменения без указания u, g, o или a, например +w.
Вывод
Документация
Что такое восьмеричный и символьный режимы chmod?
chmod устанавливает права доступа к файлу в Linux, macOS и других Unix-системах и принимает их в двух нотациях. Восьмеричный режим, например 755, содержит по одной цифре для владельца, группы и всех остальных пользователей: право на чтение обозначается числом 4, на запись — 2, а на выполнение — 1. Символьный режим, например u=rwx,g=rx,o=rx, вместо этого указывает классы (u — владелец, g — группа, o — остальные, a — все) и права (r, w, x).
Символьные режимы также могут изменять права, а не только устанавливать их полностью: u+x добавляет право на выполнение для владельца, go-w удаляет право на запись для группы и остальных пользователей, а g=u копирует права владельца для группы. Восьмеричный режим всегда устанавливает все права, поэтому результат изменения в восьмеричной форме зависит от режима, который был установлен у файла ранее.
Описание инструмента
Этот инструмент преобразует режимы chmod между восьмеричной и символьной нотациями. Выберите исходную и целевую нотацию или оставьте для исходной нотации автоматическое определение: введите 755, чтобы получить u=rwx,g=rx,o=rx, или введите символьный режим, чтобы получить восьмеричное значение. Для изменений вроде u+x или a+X введите текущий режим файла и посмотрите режим, который после этого установит chmod. Также можно вставить строку прав из ls -l, например -rwxr-xr-x, или целую команду chmod.
Примеры
| Восьмеричный | Символьный | ls -l | Типичное применение |
|---|---|---|---|
| 644 | u=rw,go=r |
-rw-r--r-- |
Обычные файлы |
| 755 | u=rwx,go=rx |
-rwxr-xr-x |
Скрипты, программы и каталоги |
| 600 | u=rw,go= |
-rw------- |
Личные файлы, например ключи SSH |
| 2775 | u=rwx,g=rwxs,o=rx |
drwxrwsr-x |
Общие каталоги, сохраняющие свою группу |
| 1777 | a=rwx,+t |
drwxrwxrwt |
/tmp и другие общие временные каталоги |
| 4755 | u=rwxs,go=rx |
-rwsr-xr-x |
Программы, например passwd |
Возможности
- Преобразование восьмеричного режима в символьный и символьного в восьмеричный с помощью кнопки обмена для смены направления
- Определение нотации введённого режима или преобразование в выбранную нотацию
- Применение относительных изменений, таких как
u+x,go-w,a=r,u+w,g=uиa+X, к текущему режиму - Поддержка setuid, setgid и sticky bit (
s,tи четырёхзначных восьмеричных режимов) - Вывод символьного режима полностью (
u=rwx,g=rx,o=rx) или в компактной форме (u=rwx,go=rx) - Чтение и запись строк прав
ls -l, включаяs,S,tиT - Поддержка вставленных команд, таких как
sudo chmod -R 755 dir - Указание точного символа, если режим недействителен
Как это работает
Восьмеричный режим считывается как число длиной до четырёх цифр: необязательная первая цифра содержит параметры setuid (4), setgid (2) и sticky bit (1), а остальные три — права владельца, группы и остальных пользователей. Символьный режим считывается по отдельным конструкциям в соответствии с грамматикой POSIX и применяется к текущему режиму так же, как это делает GNU chmod в Linux:
+добавляет права,-удаляет их, а=устанавливает их и сбрасывает остальные права для указанных классов.Xдобавляет право на выполнение только каталогам и файлам, у которых это право уже есть хотя бы для одного пользователя.sустанавливает setuid сuи setgid сg.tустанавливает sticky bit сo,aили без указания класса.- Если класс не указан, как в
+x, изменение применяется ко всем пользователям, за исключением битов, заблокированных umask. - Для каталогов setuid и setgid сохраняются без изменений, если режим явно не указывает их, как в
g-s.
Символьный вывод явно устанавливает каждый бит, поэтому для файла он даёт один и тот же результат независимо от режима, который был установлен ранее. Sticky bit записывается отдельной конструкцией +t, поскольку GNU и BSD chmod поддерживают его в таком виде.
Советы
- Используйте
a+Xсchmod -R, чтобы сделать каталоги доступными для обхода, не назначая право на выполнение каждому файлу. chmod 755для каталога не удаляет setgid в GNUchmod. Используйтеchmod 00755илиg-s, чтобы удалить его.- Ansible и многие файлы конфигурации требуют начальный ноль, как в
0755. Включите параметр «Всегда показывать 4 восьмеричные цифры», чтобы получать такой формат. - Символ
.или+после строкиls -lобозначает контекст SELinux или ACL. Используйтеgetfacl, чтобы просмотреть записи ACL, которые не отображаются в режиме.