Калькулятор прав доступа Права файлов Unix без запоминания восьмеричных чисел

Опубликовано
Калькулятор chmod: Права файлов Unix без запоминания восьмеричных чисел 1
Реклама · УДАЛИТЬ?

Права файлов Unix подводят почти каждого в какой-то момент. Криптографичный rwxr-xr-x в ls -la результат, трёхзначные восьмеричные числа, различие между chmod, chownи chgrp — это слишком много, чтобы запоминать в голове. Это справочник, который вы можете сохранить.

Если вам нужно вычислить значение прямо сейчас, используйте Калькулятор прав доступа — выберите права визуально и он сгенерирует правильную восьмеричную или символическую запись.

Модель прав доступа

Каждый файл и каталог имеет три набора прав доступа:

  • Владелец (u) — пользователь, который владеет файлом
  • Группа (g) — члены группы, назначенной файлу
  • Другие (o) — все остальные

Каждый набор имеет три бита: чтение (r = 4), запись (w = 2), выполнение (x = 1). Сложите их вместе, чтобы получить восьмеричную цифру для этого набора. Так rwx = 4+2+1 = 7, r-x = 4+0+1 = 5, r-- = 4+0+0 = 4.

Трёхзначное восьмеричное число, как 755 означает: владелец получает 7 (rwx), группа получает 5 (r-x), другие получают 5 (r-x).

Чтение вывода ls -la

-rwxr-xr-x 1 thien www-data 4096 Apr 10 10:00 deploy.sh
drwxr-x--- 2 thien www-data 4096 Apr 10 09:00 private/

Первый символ — тип файла: - для обычного файла, d для каталога, l для символической ссылки. Следующие девять символов — три набора прав в порядке: владелец, группа, другие — по три символа каждый.

Общие значения chmod

ЦенитьВладелецГруппаДругиеТипичное использование
644rw-r–r–Веб-файлы (HTML, CSS, PHP)
755rwxr-xr-xКаталоги, скрипты оболочки
600rw-Ключи SSH, приватные конфигурационные файлы
640rw-r–Конфигурационные файлы (доступные группе)
664rw-rw-r–Общие проектные файлы
700rwxПриватные скрипты
777rwxrwxrwxНе использовать — предоставляет всем полный контроль

Почему 777 — неправильно

chmod 777 — распространённый краткий способ решения проблемы, который часто остаётся навсегда. Он даёт всем пользователям системы — и в веб-контекстах, любым процессам PHP — право записи к вашим файлам. На общей серверной платформе это уязвимость. На VPS это небрежность. Исправьте реальную проблему с правами с помощью chown вместо.

chmod против chown против chgrp

КомандаЧто меняется
chmodПрава на чтение, запись и выполнение файла
chownКакой пользователь (и, по желанию, группа) владеет файлом
chgrpКакая группа владеет файлом
chmod 644 index.php           # Set permissions
chown www-data:www-data .    # Change owner and group
chgrp developers config.yml  # Change group only

Бит «стикки», setUID, setGID

Эти параметры представлены четвёртым восьмеричным цифрой (в качестве префикса) или заменой букв в символической записи.

  • Бит «стикки» (1 / t) — в каталогах, только владелец может удалить свои собственные файлы. Используется в /tmp.
  • setUID (4 / s на владельце x) — файл запускается как его владелец, а не как пользователь, запускающий его. Используется в sudo и passwd.
  • setGID (2 / s на группе x) — в файлах: запускается с группой файла. В каталогах: новые файлы наследуют группу каталога, что полезно для общих проектных каталогов.
chmod +t /shared/dir          # Add sticky bit
chmod 1755 /shared/dir        # Sticky bit + standard 755
chmod g+s /var/www/project/   # setGID on a directory

В ls -l выводе, setGID в каталоге выглядит как drwxrwsr-x; бит «стикки» выглядит как drwxrwxrwt.

Рекурсивные права: будьте осторожны с -R

chmod -R применяет права к каталогу и всем его содержимым. Обычная ошибка: использование 755 рекурсивно устанавливает право выполнения на все файлы, даже если это не нужно. Более безопасный подход — отделять каталоги от файлов:

# Apply 755 to directories, 644 to files
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

Исправление распространённых проблем с правами доступа

# Web server can't read your files (403 Forbidden)
chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

# SSH key refused (WARNING: UNPROTECTED PRIVATE KEY FILE)
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 700 ~/.ssh

# Script won't execute (Permission denied)
chmod +x deploy.sh

# PHP can't write to uploads directory
chown www-data:www-data wp-content/uploads
chmod 755 wp-content/uploads

Пропустите умственное вычисление

Перевод rwxr-x--- к 750 в уме возможен, но трудоёмкий. Калькулятор chmod на IO Tools позволяет визуально переключать права и мгновенно показывает как восьмеричное значение, так и символическую запись — полезно, когда нужно быть уверенным перед выполнением chmod -R на производственном каталоге.

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?