15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
16.08.2025

Как проверить разрешения файлов в Linux: полное руководство

Linux управляет большинством серверов в мире — от окружений VPS Hosting до корпоративных Dedicated Servers — и не без причины. Он быстрый, стабильный и построен с безопасностью в основе. Одной из самых фундаментальных основ этой безопасности является система разрешений файлов: точный, элегантный механизм, который контролирует ровно то, кто может читать, изменять или выполнять любой файл или каталог в системе.

Независимо от того, являетесь ли вы разработчиком, развертывающим веб-приложение, системным администратором, укрепляющим сервер, или новичком, изучающим командную строку, понимание того, как проверять и интерпретировать разрешения файлов в Linux, является необходимым навыком. Это руководство охватывает все, что вам нужно знать — от основ модели разрешений до продвинутых специальных битов — с практическими командами и примерами из реальной жизни.

Что такое разрешения файлов Linux?

Каждый файл и каталог в Linux имеет набор разрешений, прикрепленных к нему. Эти разрешения определяют, какие действия разрешены и кем. Есть три основных типа разрешений:

РазрешениеСимволЧто оно делает на файлеЧто оно делает на каталоге
ЧтениеrПросмотр содержимого файлаСписок имен файлов внутри
ЗаписьwИзменение или удаление файлаСоздание или удаление файлов внутри
ВыполнениеxЗапуск файла как программыВход (навигация) в каталог

Эти три разрешения применяются независимо к трем отдельным категориям пользователей:

  • Владелец (пользователь) — пользователь, который владеет файлом, обычно его создатель.
  • Группа — любой пользователь, который принадлежит назначенной группе файла.
  • Остальные — все остальные в системе.

Эта матрица разрешений три на три дает администраторам Linux детальный, мощный контроль над доступом к каждому ресурсу в системе.

Как проверить разрешения файлов: команда ls -l

Самый быстрый и наиболее часто используемый метод проверки разрешений файлов — это команда ls -l (формат длинного списка).

ls -l file.txt

Пример вывода:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Давайте разберем каждый компонент этого вывода:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

Итак, -rw-r--r-- говорит нам:

  • Владелец (alice): Чтение + Запись (rw-)
  • Группа (developers): Только чтение (r--)
  • Остальные: Только чтение (r--)

Проверка разрешений для нескольких файлов

Чтобы увидеть разрешения для всех файлов в каталоге одновременно:

ls -la /var/www/html

Флаг -a включает скрытые файлы (те, которые начинаются с точки). Это особенно полезно при аудите каталогов веб-сервера в окружении Shared Web Hosting или VPS.

Получение подробной информации о разрешениях с помощью stat

Для более тщательного разбора — включая как символические, так и числовые представления — используйте команду stat:

stat file.txt

Пример вывода:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

Ключевая строка:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

Это дает вам:

  • Числовое (восьмеричное) обозначение: 0644
  • Символическое обозначение: -rw-r--r--
  • Идентификатор пользователя (UID) и идентификатор группы (GID) с их читаемыми именами

Команда stat неоценима при устранении ошибок разрешений на рабочих серверах, так как она предоставляет весь необходимый контекст в одном выводе.

Понимание числового (восьмеричного) обозначения разрешений

Разрешения Linux могут быть выражены как числа, что является форматом, используемым командами типа chmod. Каждому типу разрешения присваивается значение:

РазрешениеЧисловое значение
Чтение (r)4
Запись (w)2
Выполнение (x)1
Нет разрешения (-)0

Вы вычисляете значение разрешения для каждой категории пользователя, добавляя значения вместе:

КомбинацияРасчетЧисловое значение
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Трехзначное восьмеричное число представляет полный набор разрешений:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Проверка разрешений на каталогах

Каталоги используют ту же модель разрешений, но значение каждого бита немного отличается. Используйте ls -ld (обратите внимание на флаг -d) для проверки самого каталога, а не его содержимого:

ls -ld myfolder

Пример вывода:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

Ведущий d подтверждает, что это каталог. Разрешения разбиваются как:

  • Владелец (alice): rwx — может перечислять, создавать/удалять файлы и входить в каталог
  • Группа (developers): r-x — может перечислять файлы и входить, но не может создавать или удалять
  • Остальные: --- — нет доступа вообще

> Важно: Бит выполнения (x) на каталоге означает способность входить в него (т.е. использовать cd). Без x пользователь не может перейти в каталог, даже если у него есть разрешение на чтение. Это частый источник путаницы для новичков.

Специальные биты разрешений: setuid, setgid и sticky bit

Помимо стандартных девяти битов разрешений, Linux поддерживает три специальных бита разрешений, которые обеспечивают продвинутый контроль доступа:

1. setuid (s на бите выполнения владельца)

Когда установлен на исполняемом файле, программа запускается с привилегиями владельца файла, а не вызывающего пользователя. Вот как команды типа passwd позволяют обычным пользователям изменять /etc/shadow (которым владеет root).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

s в позиции выполнения владельца указывает на setuid.

2. setgid (s на бите выполнения группы)

На файле программа запускается с привилегиями группы. На каталоге новые файлы, созданные внутри, автоматически наследуют группу каталога — полезно для общих папок проектов.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t на бите выполнения остальных)

Когда установлен на каталоге, только владелец файла (или root) может удалять или переименовывать файлы внутри него, даже если у остальных есть разрешение на запись. Это стандартная конфигурация для /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

t в конце сигнализирует, что sticky bit активен.

Числовое представление специальных битов:

Специальный битЧисловое значение
setuid4000
setgid2000
Sticky bit1000

Итак, drwxrwxrwt = 1777 (1000 + 777).

Полная таблица справочника разрешений

СимволическоеЧисловоеЗначение на файлеЗначение на каталоге
---0Нет доступаНет доступа
--x1Только выполнениеТолько вход
-w-2Только записьИзменение содержимого (с x)
-wx3Запись + ВыполнениеВход и изменение
r--4Только чтениеСписок имен (требует x для полезности)
r-x5Чтение + ВыполнениеСписок и вход
rw-6Чтение + ЗаписьСписок и изменение (без входа)
rwx7Полный доступПолный контроль

Примеры разрешений из реальной жизни

Вот наиболее распространенные шаблоны разрешений, которые вы встретите на практике:

-rw-r--r-- (0644) — Стандартный файл

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

Владелец может читать и писать. Группа и остальные могут только читать. Типично для файлов конфигурации и веб-содержимого.

-rwxr-xr-x (0755) — Исполняемый скрипт или двоичный файл

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

Владелец имеет полный доступ. Все остальные могут читать и выполнять, но не могут изменять. Стандартно для shell-скриптов, двоичных файлов веб-сервера и публичных исполняемых файлов.

-rw------- (0600) — Приватный файл

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Только владелец может читать или писать. Нет доступа для кого-либо еще. Требуется для приватных SSH-ключей — SSH откажется использовать файл ключа с более широкими разрешениями.

drwxr-xr-x (0755) — Стандартный публичный каталог

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Обычно для корневых каталогов веб-сайтов. Владелец имеет полный контроль; остальные могут просматривать и входить.

drwx------ (0700) — Приватный каталог

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Полностью приватный. Только владелец может получить доступ. Требуется для каталога ~/.ssh.

drwxrwxrwt (1777) — Доступный для записи всем с sticky bit

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать