Калькулятор chmod
Задайте права доступа Unix флажками, восьмеричным числом вроде 755 или текстом rwxr-xr-x и получите соответствующие команды chmod.
Работает полностью в браузере
- Числовая
- Символьная
Что разрешает этот режим
| Кто | Для файла | Для каталога |
|---|
Работает с девятью битами прав, а также setuid, setgid и sticky, как в POSIX chmod. Реальные файлы он не читает, владельцев не показывает и не охватывает ACL, атрибуты файлов и umask. Восьмеричные режимы должны состоять из 3 или 4 цифр.
Как определить режим chmod
- Отметьте флажки для владельца, группы и остальных или выберите типовой вариант, например 644 или 755. Можно также ввести восьмеричное число или девять букв, и флажки подстроятся.
- Посмотрите краткое описание того, что может делать каждый класс с файлом и с каталогом, и прочитайте предупреждение, если оно появилось.
- Скопируйте числовую или символьную команду
chmod. Если хотите получить команду, готовую для вставки, сначала измените имя файла.
Как хранятся права доступа к файлам Unix
Каждый файл и каталог в Unix-подобной системе несёт короткий режим: три бита прав (чтение, запись, выполнение) для каждого из трёх классов (пользователь-владелец, группа-владелец, все остальные) и ещё три специальных бита. Всего получается двенадцать бит, а восьмеричное число — это те же биты, записанные по три, поэтому цифры доходят только до 7. Девятибуквенная запись из ls -l показывает те же биты буквами.
Чтение, запись и выполнение на каталоге означают другое. Чтение позволяет увидеть список имён внутри, запись — добавлять, переименовывать и удалять записи, а выполнение — входить в каталог и обращаться к содержимому по имени. Каталог с чтением, но без выполнения показывает имена и запрещает доступ ко всему внутри, что часто становится причиной запутанных ошибок прав.
Специальные биты меняют поведение режима. Setuid и setgid заставляют программу работать с правами владельца файла или группы, а не вызвавшего её пользователя; это мощный механизм, поэтому в большинстве систем для shell-скриптов он игнорируется. Setgid на каталоге заставляет новые файлы наследовать его группу, а sticky-бит на каталоге не даёт пользователям удалять файлы друг друга. Если вы не уверены, какой режим нужен файлу, начните с ограничительного и добавляйте только то, чего требует сообщение об ошибке.
Советы
- Двоичная и восьмеричная записи — это одни и те же биты, записанные по-разному; «Перевод между системами счисления» покажет 755 как 111 101 101.
- Планируете задание cron, запускающее только что сделанный исполняемым скрипт? Составьте расписание в «Генераторе cron-выражений».
- Дальше считаете сетевые диапазоны? Попробуйте «Калькулятор подсетей».
Вопросы и ответы
Как работает восьмеричное число?
Каждая цифра складывает чтение (4), запись (2) и выполнение (1) для одного класса в порядке «владелец, группа, остальные». Так, 7 — это чтение, запись и выполнение, 5 — чтение и выполнение, а 4 — только чтение. 755 даёт владельцу всё, а остальным — чтение и выполнение. Необязательная четвёртая цифра спереди хранит setuid (4), setgid (2) и sticky (1).
Что означают буквы s, S, t и T?
Они заменяют x в позиции владельца, группы или остальных. Строчная буква означает, что специальный бит установлен и выполнение тоже включено; заглавная — что специальный бит установлен, а выполнение выключено, что обычно является ошибкой. Так, 4755 — это rwsr-xr-x, а 4644 — rwSr--r--.
Чем 644 отличается от 755?
644 — обычный режим для обычных файлов: владелец может читать и записывать, остальные — только читать. 755 добавляет выполнение для всех, которое нужно программам, скриптам и каталогам. Чтобы войти в каталог, нужен бит выполнения.
Почему 777 считается опасным?
Он позволяет любому пользователю машины и любой запущенной от его имени программе изменить или заменить файл. Веб-серверу, которому нужно что-то записывать, это не требуется: назначение нужного пользователя или группы владельцем и режим 775 или 770 решают большинство ошибок прав без открытия файла для всех.
Что делает sticky-бит?
На каталоге он не позволяет пользователям удалять или переименовывать чужие файлы, даже если они могут записывать в этот каталог. Поэтому у общих папок вроде /tmp режим 1777. В современном Linux на обычные файлы он не влияет.
Меняет ли этот инструмент что-нибудь на моём компьютере?
Нет. Он только вычисляет число и команды. Введённые данные никуда не отправляются, а команды вы запускаете сами в терминале.