Калькулятор Chmod
Вычисляйте права доступа к файлам Unix. Конвертируйте между восьмеричной и символьной (rwx) нотацией.
| Чтение (r) | Запись (w) | Выполнение (x) | Восьмеричный | Символьный | |
|---|---|---|---|---|---|
| Владелец | 6 | rw- | |||
| Группа | 4 | r-- | |||
| Остальные | 4 | r-- |
Восьмеричный
644
Символьный
rw-r--r--
Команда chmod
chmod 644 filename
Калькулятор Chmod помогает понять и сформировать настройки прав доступа к файлам Unix/Linux. В Unix-системах каждый файл и каталог имеет набор битов прав, контролирующих возможность чтения, записи или исполнения для владельца, группы и всех остальных. Команда `chmod` задаёт эти права символьной нотацией (rwx) или восьмеричными числами (например, 755).
Переключайте флажки чтения, записи и выполнения для колонок «Владелец», «Группа» и «Другие» — инструмент автоматически вычислит восьмеричное значение и символьную строку. Введите восьмеричное значение вроде 644 и инструмент покажет, какие права включены для каждой категории пользователей.
Распространённые шаблоны прав: 755 (каталоги и исполняемые файлы), 644 (веб-файлы) и 600 (приватные SSH-ключи).
Часто задаваемые вопросы
Реализация кода
import os
import stat
# Set permissions using octal notation
os.chmod('script.sh', 0o755) # rwxr-xr-x (owner: rwx, group: r-x, others: r-x)
os.chmod('data.txt', 0o644) # rw-r--r-- (owner: rw-, group: r--, others: r--)
os.chmod('private.key', 0o600) # rw------- (owner: rw-, no access for others)
# Read current permissions
file_stat = os.stat('script.sh')
mode = file_stat.st_mode
print(oct(stat.S_IMODE(mode))) # e.g. '0o755'
# Check specific permissions using stat constants
is_owner_executable = bool(mode & stat.S_IXUSR)
is_group_readable = bool(mode & stat.S_IRGRP)
is_others_writable = bool(mode & stat.S_IWOTH)
print(f"Owner executable: {is_owner_executable}")
# Build permissions programmatically
perms = stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH # 644
os.chmod('config.ini', perms)
# Recursively set permissions on a directory tree
import pathlib
for path in pathlib.Path('/var/www/html').rglob('*'):
if path.is_dir():
os.chmod(path, 0o755)
else:
os.chmod(path, 0o644)Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.