Chmod Calculator
Конвертує між числовими й символічними UNIX-правами.
Про цей інструмент
Chmod Calculator переводить між трьома способами виразити UNIX file permissions: octal (755, 644), symbolic (rwxr-xr-x, rw-r--r--) і symbolic mode (u=rwx,go=rx — форма, яку приймає сам chmod). Клікніть read/write/execute-чекбокси для owner/group/other, і три представлення оновлюються синхронно з готовою для копіювання командою chmod.
Спеціальні біти теж підтримуються: setuid (4000), setgid (2000) і sticky (1000) — біти, що перетворюють /tmp у shared-writable директорію, де користувачі не можуть видаляти файли один одного (sticky), і що дозволяють бінарникам на кшталт passwd ескалювати привілеї (setuid). Дисплей анотує кожен з його security-implication, щоб ви знали, що збираєтесь застосувати.
Коли використовувати цей інструмент
- Hardening дерев web-сервера. Підтвердіть
644для файлів і755для директорій перед зміною чогось уchmod -R. - Розслідування «permission denied». Декодуйте результат
ls -lв octal, щоб порівняти з тим, що очікує ваш додаток. - Налаштування shared-директорій. Правильна комбінація sticky-біта (
1777) для multi-user upload-папки. - Вивчення UNIX permissions. Інтерактивні bit-checkboxes — найшвидший спосіб зрозуміти, як octal мапиться на rwx.
Про umask і default permissions
umask — інверсія виводу калькулятора — каже ядру, які біти вимкнути, коли створюється новий файл або директорія. Поширений umask 022 дає 644 для файлів і 755 для директорій за замовчуванням; строгіший umask 077 дає 600 для файлів і 700 для директорій (private для owner). Підібрати правильний umask system-wide ефективніше, ніж chmod-ити кожен файл окремо.
Часті запитання
Яка різниця між 644 і 755?
644 — «owner read/write, всі інші лише read» — правильний default для статичних файлів (HTML, CSS, images). 755 додає execute для всіх, що не має сенсу для статичних файлів, але обов'язкове для директорій (без execute на директорії неможливо cd у неї) і для скриптів/бінарників. Правило: 644 для файлів, 755 для директорій.
Що насправді робить setuid?
/usr/bin/passwd має setuid root, щоб звичайний користувач міг змінити свій пароль (що вимагає запису в /etc/shadow). Це потужний, але небезпечний permission; лише системні бінарники мають його мати, ніколи — user-скрипти. Shell-скрипти ігнорують setuid із міркувань безпеки в сучасному UNIX.
Чому execute потрібен на директоріях?
cd у папку, перелічити її вміст (з ls теж потрібен read) або прочитати будь-який файл всередині, навіть якщо файли мають read permission. Директорія в read-only режимі (444) зламана — ви бачите імена, але не можете stat-нути жоден з них.
Для чого sticky-біт?
/tmp використовує 1777 — всі можуть писати, але видалити можна лише свої файли. Без sticky будь-хто міг би rm-нути чужі tempfile. Біт прийшов із legacy-використання на executable (тримав текст у свапі), тепер на файлах застарілий; на директоріях досі дуже корисний.