Tool.Yun
Зручні інструменти для розробників
CSV в JSON
JS в JSON
JSON в C#
JSON в CSV
JSON в Go
JSON в JS
JSON в TOML
JSON в об'єкт
JSON до MessagePack
JSON до TS
JSON до даних
JSON у .env
JSON у Java
JSON у PHP-масив
JSON у XML
JSON у схему
Json до SQL DDL
Json на Python
Json у PHP код
Json-запит
ObjGen у JSON
PHP-масив у JSON
tools.json-patch.name
Аналізатор розміру JSON
Екранування/Розекранування JSON
Зведення/розведення JSON
Злиття JSON
Конвертер JSON в YAML
Конвертер JSON рядків
Лінтер JSON
Майстер сортування JSON
Мінімізація JSON
Пакування повідомлень у JSON
Порівняння JSON
Редактор JSON
Тестер Jq/JSONPath
Форматування JSON
PDF-компресор
PDF-конкатенер
Екстрактор сторінок PDF
Екстрактор тексту PDF
З HTML у PDF
Лінеаризація PDF/Швидкий веб
Перевірка підпису PDF
Розблокування PDF
Шифрування PDF
TOML в JSON
TOML в YAML
TOML-лінтер
ObjGen у HTML
XML у JSON
XML-лінтер
Тестер XPath
Тестер XSLT
Форматування XML
YAML в TOML
Зведення/розведення YAML
Злиття YAML
Конвертер YAML в JSON
Форматування YAML
Вибір карт
Кидок кубика
Колесо фортуни
Монетний кидок
HTML WYSIWYG редактор
HTML до даних
MIME типи
Інформація про пристрій
Генератор SVG placeholder
Генератор UTM URL
Генератор градієнтів CSS
Генератор текстових фрагментів URL
Дефангер URL
Екранування HTML сутностей
З HTML до XHTML
Зображення у CSS
Коди стану HTTP
Кодування/декодування URL-форматованих рядків
Колесо кольорів
Конвертер CSS XPath
Конвертер REM у пікселі
Конвертер кольорів
Конвертер одиниць CSS
Мініфікатор HTML
Очищувач HTML
Очищувач URL
Парсер User-agent
Перевірка контрастності кольорів
Перетворення рядка (slug)
Форматувач CSS
Форматувач HTML
Калькулятор відсотків
Калькулятор гео-дистанції
Калькулятор співвідношення сторін
Конструктор бенчмарків
Генератор BIP39 паролів
Генератор NanoID
Генератор OTP кодів
Генератор PIN-кодів
Генератор UUID
Генератор випадкових чисел
Генератор нумеронімів
Генератор паролів
Генератор паролів Diceware
Генератор токенів
Конвертер UUID
Валідатор Luhn
Валідатор номерів ПДВ
Валідатор та парсер IBAN
Валідатор та парсер ISBN
Калькулятор SLA
Калькулятор ІМТ
Калькулятор темпу бігу
Конвертер валют
Конвертер календарів
Конвертер чисел RMB
Онлайн-словник
Парсер та форматувач телефонів
Перевірка кредитних карток
Пошук Unicode
Пошук кодів країн ISO 3166
Пошуковий інструмент ISO 639
Поясніть команду оболонки
Рекомендації IES з освітлення
Сумісність ліцензій програмного забезпечення
Cron/Будильник на будні
Будильник часу
Генератор ICAL
Зворотний відлік
Калькулятор ETA
Калькулятор TTL
Калькулятор дати+тривалості
Калькулятор днів
Калькулятор тривалості
Конвертер дати та часу
Конвертер номерів тижнів
Конвертер часових поясів
Об'єднувач iCal
Парсер ICAL файлів
Хронометр
Який день?
Docker Compose у Kubernetes
Docker Compose у квадлети
Docker Compose у файл .env
Docker run у Kubernetes
Docker запуск до квадлетів
Валідатор Docker Compose
Від перевірки Docker до запуску Docker
Генератор RBAC Kubernetes
Генератор міток Dockerfile
Завантажувач образів Docker
Конвертер Docker Compose у Docker run
Конвертер Docker run в Docker compose
Конвертер формату Docker Compose
Конструктор творів у Traefik Docker
Мітки Docker Pangolin
Конструктор виразів Cron
GIF у MP4
OCR зображень та PDF
Інвертор кольору зображення
Видалення EXIF
Видалити фон зображення
Водяний маркер
Запис з камери
Зміна розміру зображення
Зображення у SVG (potrace)
Конвертер HEIC
Конвертер ICO/PNG
Конвертер зображень
Обрізати зображення
Попередній перегляд SVG
Порівняння зображень
Читач EXIF/метаданих зображень
CSV до даних
Excel до даних
Torrent у Magnet
Генератор ULID
Конвертер Base64 Hex масивів
Конвертер багатьох одиниць
Конвертер властивостей
Конвертер географічних координат
Конвертер дБм мВт
Конвертер одиниць зберігання даних
Конвертер римських цифр
Конвертер рядків base64
Конвертер символів Unicode у Java сутності
Конвертер файлів Base64
Конвертер форматів змінних середовища
Конвертер числових систем
Нормалізатор електронної пошти
Обчислювач енергії
Текст у Unicode
Текст у двійковий ASCII
AGE Криптографія
Argon2 Хешер
Bcrypt
PGP шифрування
RSA шифрування
RSA/DSA/ECDSA підпис та перевірка
SAML-парсер
Байти Niceware для парольної фрази
Генератор CSR
Генератор Hmac
Генератор JWT
Генератор PGP ключів
Генератор RSA ключів
Генератор X509 сертифікатів
Генератор ключів ECDSA
Генератор ключів Ed25519
Енкодер/декодер Bech32
Калькулятор CRC
Конвертер SSL сертифікатів
Парсер JWT
Парсер сертифікатів/ключів
Пасето/PASERK Місцевий
Пасето/ПАСЕРК Державний/Приватний
Таємний обмін Шамірами
Хешування тексту
Хешування файлів
Шифрування / дешифрування тексту
Шифрування рядків Jasypt
Шифрування файлів PGP
Шифрування/дешифрування Ansible Vault
Бінарний калькулятор
Візуалізатор тригонометричних/рівняльних кривих
Калькулятор чайових
Конвертер математичних форматів
Математичне розпізнавання символів (OCR)
Оцінювач математичних виразів
BIMI DNS Generator
CIDR IPv4/6 у діапазон IP
DKIM DNS Generator
DNS запити
IPv4-6/IPRange/CIDR у IPRange/CIDR/IPMask
SIP-авторизація
tools.restic-command-generator.name
tools.url-redirection-checker.name
Аналізатор надійності пароля
Візуальний калькулятор підмережі
Генератор Apache LogRotate
Генератор Crontab
Генератор DNS DMARC
Генератор DNS PTR
Генератор FStab
Генератор HTAccess
Генератор Htpasswd/Htaccess
Генератор IPv6 ULA
Генератор Iptables
Генератор MAC-адрес
Генератор Option43
Генератор Rsync
Генератор SPF DNS
Генератор WPA PSK
Генератор базової автентифікації
Генератор випадкових портів
Генератор команд Curl
Генератор команд UFW
Генератор команд вимкнення
Генератор командного рядка firewalld
Генератор конфігурацій Wireguard
Геолокація IP
Декодер ARPA
Декодер X-VR-SpamCause
Діапазон IPv4/6 у CIDR
Завантажувач за кількома посиланнями
Запити DNS/RDAP до Cloudflare
Калькулятор HDD
Калькулятор RAID
Калькулятор RAID-масивів ZPOOL
Калькулятор chmod
Калькулятор виключення підмереж IP
Калькулятор надійності RAID
Калькулятор підмереж IPv4
Калькулятор підмереж IPv6
Калькулятор швидкості передачі даних
Команди оболонки Лінеаризатор
Конвертер IPv4 адрес
Конвертер IPv6 адрес
Конвертер MAC-адрес
Конвертер Punycode
Лістер підмереж IPv4
Моя IP-адреса
Надійність пароля Zxcvbn
Номери портів
Перевірка DNSBL
Перевірка Whois
Пошук MAC-адреси
Пінг
Розширювач діапазону IPv4
Санітизатор HAR
Тестер WebSocket
Тестер мікрофона
Тестер портів TCP/UDP
Форматування команд оболонки
Форматувач Nginx
Цілі числа у IPv4/IPv6
Шпаргалка ZPool
CSS/JS Прикрашання та мінімізація
Json в SQL INSERT
Json до Protobuf
Json у Typescript
Генератор GitIgnore
Генератор атрибутів Git
Генератор мета-тегів Open Graph
Генератор параметрів SQL
Генератор поштових адрес
Генератор секретів Django
Генератор скриптів для навантажувального тестування K6
Генератор таблиць бази даних
Генератор фавіконок
Деобфускатор/Розпаковувач Javascript
Ескейпер рядка
Конвертер Curl
Конвертер котирувань
Конвертер файлів HEX
Конструктор рядків підключення до бази даних
Конструктор створення баз даних
Мініфікатор SQL
Обфускатор Javascript
Підсвічувач коду/скриптів
Редактор команд CLI
Роздільник файлів
Таймер Pomodoro
Тестер API
Тестер PicoMatch
Тестер втечі ANSI
Тестер інтерфейсу користувача Swagger
Фальсифікатор даних
Форматування SQL
Форматувач Javascript
Форматувач стек-трас
Інформація про код кнопки
Аналізатор звітів DMARC
Визначення типу файлу
Генератор TCPDump
Декодер EMV TLV
Декодер Safelink Outlook
Декодер посилань Sharepoint
Декодер транзакцій ETH
Детектор/декодер кодування тексту
Екстрактор Snowflake ID
Калькулятор резисторів
Конвертер GZip/Deflate
Конвертер Hex
Конвертер MIME кодування
Конвертер Middle-Endian
Конвертер MongoDB ObjectId
Конвертер SMART Raw
Конвертер чисел з плаваючою комою
Консоль послідовного порту
Конструктор URL-адрес
Конструктор команд Nmap
Маскування конфіденційних даних
Парсер Outlook MSG
Парсер URL
Парсер відмов пошти
Парсер електронної пошти
Парсер файлів cookie
Пошук властивостей ActiveDirectory LDAP
Розширювач коротких URL-адрес
Тестер DNS
Тестер HTTPS
Тестер мертвих пікселів
Тестер поширення DNS
Читач файлів Parquet
Шпаргалка з підключення RJ45 Cat6
键盘测试器
ASCII текстовий малювальник
JSON до TOON
TOON у JSON
Tab до пробілів
Вибір емодзі
Випадковий вибір рядків
Витяг тексту з HTML
Генератор Lorem ipsum
Генератор команд Sed
Генератор цитат
Генератор/Банер Zalgo
Діаграма структури папок
Експортер Mermaid
Зображення у ASCII арт
Зчитувач RSVP
Калькулятор Левенштейна
Кодер/декодер токенів GPT
Конвертер коду Морзе
Конвертер регістру
Конвертер розкладки клавіатури
Конвертер рун
Конвертер списків
Обфускація рядка
Оцінювач токенів GPT
Пакування файлів для ШІ
Перевірка I та L
Перекладач тексту
Порівнювач списків
Порівняння текстів
Порівняння шрифтів
Поширення посилань у соціальних мережах
Пошук дублікатів рядків
Розділювач AI підказок
Розумний замінник тексту
Різні слова
Статистика тексту
Текст у алфавіт НАТО
Текст у форматі Unicode
Тестер Regex
Форматувач Unicode
Юнікод до GSM-7
Epub у Markdown
HTML у Markdown
Markdown у HTML
tools.markdown-format-converter.name
Вставка як Markdown
Генератор змісту Markdown
Генератор таблиць Markdown
Знижка Lorem Ipsum
Знижка до даних
Попередній перегляд Markdown
Прикрашач таблиці Markdown
Редактор Markdown
Розцінка в текст
Різниця уцінки
Уцінка до DOCX
Конвертер енергії їжі
Конвертер об'ємної витрати
Конвертер одиниць довжини
Конвертер одиниць енергії
Конвертер одиниць кутів
Конвертер одиниць маси
Конвертер одиниць об'єму
Конвертер одиниць площі
Конвертер одиниць потужності
Конвертер одиниць сили
Конвертер одиниць тиску
Конвертер освітленості
Конвертер префіксів СІ
Конвертер прискорення
Конвертер температури
Конвертер швидкості
Перетворювач частоти
Фітнес-комп'ютер
Калькулятор амортизації
Шпаргалка Bash
Шпаргалка CSS селекторів
Шпаргалка Docker
Шпаргалка Docker SWARM
Шпаргалка Dockerfile
Шпаргалка Git
Шпаргалка JSONPath
Шпаргалка Jq
Шпаргалка Markdown
Шпаргалка Nano
Шпаргалка Nginx
Шпаргалка Powershell
Шпаргалка Regex
Шпаргалка Sed
Шпаргалка VIM
Шпаргалка XPath
Шпаргалка для K8s
Шпаргалка з екранних команд
Шпаргалка загальних регулярних виразів
Шпаргалка по Docker Compose
Шпаргалка по команді Tmux
Шпаргалка по команді Zellij
Шпаргалка по команді chmod
Шпаргалка по семантичному коміту в Git
tools.epc-qrcode-generator.name
Валідатор GTIN
Генератор QR-кодів
Генератор QR-кодів для WiFi
Генератор QR-кодів для контактної інформації
Генератор штрих-кодів
Декодер QR-кодів
Зчитувач штрих-кодів

Шпаргалка по команді chmod

Шпаргалки для змін дозволів Linux

chmod (change mode) sets who may read, write, and execute a file or directory on Unix-like systems. The mode can be written symbolically (u+x) or numerically (755) — both reach the same result.

chmod [options] <mode> <file>...

💡 Inspect before and after with ls -l <file>, or get the octal value directly with stat -c '%a %n' <file>.

🗂 Reading ls -l Output

-  rwx  r-x  r--   →  754
│  │    │    │
│  │    │    └── others : r-- = 4
│  │    └─────── group  : r-x = 5
│  └──────────── user   : rwx = 7
└─────────────── type   : - file · d directory · l symlink · c/b device

🧑 User Classes (who)

SymbolClassApplies to
uUserThe file’s owner
gGroupMembers of the file’s group
oOthersEveryone else
aAllu, g and o at once (implied when omitted)

🔐 Permission Bits (what)

SymbolPermissionOctalOn a fileOn a directory
rRead4Read the contentsList entry names (ls)
wWrite2Modify the contentsCreate, rename and delete entries
xExecute1Run as a programEnter it (cd) and reach entries by name
-None0——

📝 Symbolic Mode

OperatorEffect
+Add the listed permissions, leave the rest untouched
-Remove the listed permissions, leave the rest untouched
=Set exactly these permissions, clearing the others for that class
# add execute for the owner
chmod u+x <file>

# remove write from the group
chmod g-w <file>

# cut off group and others entirely
chmod go-rwx <file>

# everyone gets read only, nothing else
chmod a=r <file>

# several clauses, comma separated
chmod u=rwx,go=rx <file>

# 'a' is implied, then filtered by the umask
chmod +x <file>

# regular and special bits in one call
chmod u+x,g+s <file>

# copy the mode of another file
chmod --reference=<ref> <file>

💡 Use X (capital) instead of x to add execute only to directories and to files that already have an execute bit — the safe way to fix a tree: chmod -R u=rwX,go=rX <dir>.

🔢 Numeric (Octal) Mode

Each digit is the sum of r (4), w (2) and x (1):

OctalSumBits
74+2+1rwx
64+2rw-
54+1r-x
44r--
32+1-wx
22-w-
11--x
00---

Three digits map to user, group, others. An optional fourth leading digit sets the special bits (chmod 4755, see below).

Common modes

ModeSymbolicTypical use
777rwxrwxrwxFull access for everyone — ⚠️ almost never the right answer
755rwxr-xr-xScripts, binaries and directories
750rwxr-x---Executable for the owner and their group only
700rwx------Private directory (~/.ssh, ~/.gnupg)
664rw-rw-r--Files shared read-write inside a group
644rw-r--r--Regular files, web assets, configs
640rw-r-----Config with secrets, readable by a service group
600rw-------Private files (~/.ssh/id_ed25519, .env)
400r--------Read-only key material
chmod 755 script.sh

chmod 644 notes.txt

chmod 600 ~/.ssh/id_ed25519

🧪 Special Permission Bits

These go beyond read/write/execute and control the execution context and deletion rules.

BitOctalSymbolicApplies toEffectShown in ls -l as
setuid4u+sExecutable filesRuns with the file owner’s privilegess in the user field
setgid2g+sExecutables, directoriesRuns as the file’s group / new entries inherit the directory’s groups in the group field
sticky1+tDirectoriesOnly the entry’s owner (or root) may delete or rename itt in the others field
# setuid → -rwsr-xr-x
chmod 4755 /usr/bin/somebinary

# setgid → drwxrwsr-x: one group for the whole tree
chmod 2775 /srv/shared

# sticky → drwxrwxrwt: a shared drop box, like /tmp
chmod 1777 /srv/tmp

# strip every special bit again
chmod u-s,g-s,o-t <file>

⚠️ setuid is a privilege-escalation vector — never set it on scripts or on binaries a user can replace. Linux ignores it on interpreted scripts anyway.

ℹ️ A capital S or T in ls -l (-rwSr--r--) means the special bit is set while the matching x bit is not — usually a mistake.

📂 Directory Access Matrix

x on a directory means traverse, not execute — without it nothing below the directory can be reached, no matter how permissive the files themselves are.

ModeList names (ls)Details (ls -l, stat)Enter (cd)Open a known fileCreate / delete entries
r--✅❌❌❌❌
--x❌✅ (by exact name)✅✅❌
r-x✅✅✅✅❌
rwx✅✅✅✅✅
-w-❌❌❌❌❌ (write needs x)

🔁 Recursive & Selective Changes

# blunt: also marks every file executable
chmod -R 755 <dir>

# preferred: X only touches dirs + real executables
chmod -R u=rwX,go=rX <dir>

# directories only
find <dir> -type d -exec chmod 755 {} +

# files only
find <dir> -type f -exec chmod 644 {} +

# make every shell script executable
find <dir> -type f -name '*.sh' -exec chmod +x {} +

⚙️ Useful Options

OptionDescription
-R, --recursiveApply to directories and everything inside them
-v, --verbosePrint a line for every file processed
-c, --changesPrint a line only when a mode actually changed
-f, --silent, --quietSuppress most error messages
--reference=<file>Reuse the mode of another file instead of spelling it out
--preserve-rootRefuse to run recursively on / — not the default, unlike rm
-h (BSD/macOS)Act on the symlink itself instead of its target

🎭 umask — Default Permissions for New Files

New files start from 666 and new directories from 777; the umask bits are removed from that base.

# show the current mask, e.g. 0022
umask

# show it symbolically, e.g. u=rwx,g=rx,o=rx
umask -S

# stricter default for this shell session
umask 027
umaskNew filesNew directories
022644755
002664775
027640750
077600700

💡 Put umask 027 in ~/.bashrc (or a systemd unit’s UMask=) to make the default stick.

🚑 Common Recipes

GoalCommand
Make a script runnablechmod +x deploy.sh
Lock down an SSH key pairchmod 700 ~/.ssh && chmod 600 ~/.ssh/id_* && chmod 644 ~/.ssh/*.pub
Serve web content read-onlychmod -R u=rwX,go=rX /var/www/site
Shared team directory (one group)chmod 2775 /srv/shared
Public scratch directorychmod 1777 /srv/tmp
Clone the mode of a known-good filechmod --reference=good.conf new.conf
Undo an accidental chmod -R 777 .find . -type d -exec chmod 755 {} + && find . -type f -exec chmod 644 {} +

🧰 Related Commands

CommandPurpose
chown <user>:<group> <file>Change the owner and/or group
chgrp <group> <file>Change the group only
ls -l / ls -ld <dir>Show permissions (-d for the directory itself, not its contents)
stat -c '%a %A %U:%G %n' <file>Octal mode, symbolic mode, owner and group in one line
namei -l <path>Show the permissions of every component of a path
getfacl / setfaclFine-grained ACLs when u/g/o is not expressive enough
id / groupsCheck which groups you actually belong to

⚠️ Gotchas

  • chmod 777 is not a fix. It grants every local user write access; the real problem is almost always ownership (chown) or a missing x on a parent directory.
  • “Permission denied” on a file with rw-? Every directory in the path needs x. Debug the whole chain with namei -l /path/to/file.
  • Interpreted scripts need r too — the kernel hands the file to the interpreter, which has to read it.
  • Group changes need a new login (or newgrp <group>) before the shell picks them up.
  • FAT/NTFS/exFAT mounts ignore chmod — set permissions with the umask=, fmask= and dmask= mount options instead.
  • Removing x from a directory hides everything below it, even world-readable files.

📚 Resources

  • GNU coreutils — chmod invocation
  • GNU coreutils — file permissions
  • Man pages: man 1 chmod · man 1 umask · man 1 chown · man 5 acl