Pack Camo

Калькулятор chmod

Права доступу Unix прапорцями, у вісімковому вигляді як 755 і символьному як rwxr-xr-x.

Усе виконується локально — нічого не надсилається на сервер.

Права доступу

ХтоЧитання (4)Запис (2)Виконання (1)Значення
Власник7
Група5
Інші5
Спеціальні біти

Поширені режими

Команда

  • Числова
    chmod 755 script.sh
  • Символьна
    chmod u=rwx,g=rx,o=rx script.sh
Вісімковий
0755
Символьний
rwxr-xr-x
ls -l
-rwxr-xr-x
Форма chmod
u=rwx,g=rx,o=rx

Хто що може

  • Власник: може читати його, змінювати його і запускати його як програму.
  • Учасники групи: може читати його і запускати його як програму.
  • Усі інші: може читати його і запускати його як програму.

Розрахуйте права доступу Unix і команду chmod

Цей калькулятор chmod показує права доступу до файлів у Linux і macOS у всіх потрібних формах: позначте читання, запис і виконання для власника, групи та всіх інших або введіть вісімковий режим на кшталт <code>755</code> чи символьний на кшталт <code>rwxr-xr-x</code> — інші подання оновляться самі. Ви отримаєте відповідну команду <code>chmod</code> у числовій і символьній формі, біти setuid, setgid і sticky та зрозумілий опис того, хто що може робити. Усе обчислюється у вашому браузері.

Як розрахувати права chmod

  1. 1Позначте потрібні права для Власника, Групи та Інших або введіть вісімковий режим, наприклад 644, чи символьний, наприклад rw-r--r--. Можна вставити й цілий стовпець з ls -l, наприклад drwxr-sr-x.
  2. 2Виберіть Файл або Каталог: читання, запис і виконання означають для них різне, і пояснення змінюється відповідно.
  3. 3За потреби додайте біт setuid, setgid або sticky чи почніть із готового режиму, наприклад 755 або 600.
  4. 4Введіть шлях, увімкніть Рекурсивно, якщо права треба застосувати до всього дерева, і скопіюйте команду chmod.

Як працюють вісімкові права

Кожен файл має три набори прав: для власника (u), для групи (g) і для інших (o), тобто всіх решти. Кожен набір — це три біти: читання, запис і виконання, а вісімкова цифра — просто їхня сума: читання — 4, запис — 2, виконання — 1. Отже, 7 — це rwx (4+2+1), 6 — rw- (4+2), 5 — r-x (4+1), а 4 — лише r--.

Три цифри утворюють увесь режим у порядку власник, група, інші. Тому chmod 755 дає власнику rwx, а всім іншим r-x, що записується як rwxr-xr-x, а chmod 644 дає власнику rw-, а іншим r--, тобто rw-r--r--. Четверта цифра на початку зберігає спеціальні біти: 4 — setuid, 2 — setgid, 1 — sticky, як у chmod 1777.

Поширені значення chmod

644 (rw-r--r--)
Стандарт для звичайних файлів: власник може редагувати, усі можуть читати. Підходить для HTML, зображень і більшості конфігурацій.
755 (rwxr-xr-x)
Стандарт для каталогів, скриптів і програм: усі можуть читати й запускати, змінювати — лише власник.
600 (rw-------)
Приватні файли, які читає лише власник: приватні ключі SSH, файли .env, облікові дані. ssh відмовляється використовувати приватний ключ, який можуть читати інші.
700 (rwx------)
Приватний каталог, наприклад ~/.ssh, до якого може увійти лише власник.
664 / 775
Як 644 і 755, але група теж може писати: для спільних тек проєкту, де колеги в одній групі.
777 (rwxrwxrwx)
Будь-хто може читати, змінювати й запускати. Майже ніколи не є правильним виправленням помилки доступу і становить загрозу безпеці на вебсервері.
1777 (rwxrwxrwt)
Запис для всіх плюс sticky bit, як у /tmp: усі можуть створювати файли, але видалити файл може лише його власник.

Права на каталоги

Для каталогу ці три літери означають інше. Читання дає змогу бачити імена всередині; запис — створювати, перейменовувати й видаляти записи в ньому; виконання (його часто називають пошуком) — входити в нього через cd і звертатися до файлів за іменем. Без виконання читання й запис майже марні, тому в каталогів x майже завжди стоїть там само, де r, — 755, а не 644.

Видалення файлу — це зміна каталогу, а не самого файлу. Будь-хто з правами на запис і виконання в каталозі може видалити в ньому будь-який файл, навіть чужий і доступний лише для читання, — якщо тільки каталог не має sticky bit.

Setuid, setgid і sticky bit

У символьній формі спеціальні біти замінюють літеру виконання: s, якщо виконання теж встановлено, і S, якщо ні, а для sticky bit — t або T. Велика літера зазвичай означає помилку: програма з setuid, яку ніхто не може запустити, нічого не робить.

Особливість GNU coreutils: chmod 755 для каталогу зберігає наявні біти setuid чи setgid. Щоб скинути їх числом, вкажіть п’ять цифр — chmod 00755 — або використайте chmod g-s.

Setuid (4000, u+s)
Виконуваний файл запускається з правами свого власника, а не того, хто його викликає. Так passwd записує /etc/shadow від імені root. Linux ігнорує його для скриптів і каталогів.
Setgid (2000, g+s)
Виконуваний файл запускається з правами своєї групи. У каталозі нові файли успадковують групу каталогу, а не основну групу творця, — звичне налаштування для спільних командних тек (2775).
Sticky bit (1000, +t)
У каталозі видаляти чи перейменовувати файли може лише власник файлу, власник каталогу або root. Сучасний Linux ігнорує його для файлів.

Числовий чи символьний chmod?

Числовий режим, наприклад chmod 644 file, задає всі біти одразу — саме це потрібно, коли ви знаєте кінцевий стан. Символьна форма гнучкіша: chmod u=rw,g=r,o=r file задає те саме, а chmod g+w file чи chmod o-rwx file змінюють лише вказані біти й не чіпають решту.

Обережно з chmod -R: один режим для всіх файлів і каталогів дерева зазвичай дає файлам зайвий біт виконання. Використовуйте find . -type d -exec chmod 755 {} + і find . -type f -exec chmod 644 {} +, щоб обробити їх окремо, або велику X у chmod -R u=rwX,go=rX, яка додає виконання лише каталогам і файлам, що вже його мали. Початкові права нових файлів задає umask: umask 022 дає файли 644 і каталоги 755. Щоб підбирати імена файлів у shell-скриптах, спробуйте тестер регулярних виразів.

Поширені запитання

Що означає chmod 755?
755 дає власнику читання, запис і виконання (7), а групі та всім іншим — читання й виконання (5 і 5), що записується як rwxr-xr-x. Це звичний режим для каталогів, скриптів і програм.
Що означає chmod 644?
644 дає власнику читання й запис (6), а всім іншим — лише читання (4 і 4), що записується як rw-r--r--. Це звичний режим для звичайних файлів: вебсторінок, зображень і конфігурацій.
Чим відрізняються 755 і 644?
755 додає виконання для всіх. Файл із ним можна запустити як програму, а в каталог — увійти. Використовуйте 644 для файлів, які лише читаються, і 755 для каталогів і виконуваних файлів.
Чи безпечний chmod 777?
Рідко. 777 дає змогу будь-якому користувачу системи змінити чи замінити файл, а на вебсервері зловмисник, що проник через один сайт, зможе змінювати інші. Краще виправте власника через chown або дайте доступ групі (775 чи 664).
Які права мають бути в приватного ключа SSH?
600 (rw-------) або 400 лише для читання, а в самого ~/.ssh — 700. OpenSSH відмовляється використовувати приватний ключ, який можуть читати інші, і повідомляє "UNPROTECTED PRIVATE KEY FILE".
Що означають s або t у rwsr-xr-x?
s у позиції власника чи групи — це біт setuid чи setgid із встановленим виконанням; t у позиції інших — sticky bit. Великі S або T означають, що спеціальний біт встановлено без права виконання під ним.
Як перетворити rwxr-xr-x на число?
Розбийте на три групи — rwx, r-x, r-x — і додайте в кожній r=4, w=2 і x=1: 7, 5, 5, вийде 755. Введіть рядок у символьне поле вище, щоб перетворити його миттєво.
Чи змінює цей інструмент файли?
Ні. Він лише розраховує режим і команду, а запускаєте її ви самі. Усе відбувається у вашому браузері.