Свойства файла — это сведения, которые файловая система и ОС хранят о файле отдельно от его содержимого: имя, размер, даты, атрибуты, владелец и права доступа. По ним система решает, чем открыть файл, показывать ли его и кому разрешить чтение или запись.
Содержание
Четыре слова здесь легко спутать, поэтому сразу разведем их:
- свойство — любое сведение о файле (общее слово);
- атрибут — флаг вида «включен/выключен», например «Только чтение» или «Скрытый» в Windows;
- права доступа — кто и что может делать с файлом (читать, изменять, запускать); это отдельный механизм, а не атрибут;
- метаданные содержимого — автор документа, исполнитель трека, камера на фото; их пишет не ОС, а сам формат файла.
Команды и вывод ниже проверены 23.09.2026: Linux — в контейнере Ubuntu 24.04, Python 3.14, PowerShell 7.6. Шаги Проводника описаны для Windows 11.
Сводная таблица свойств
| Свойство | Что означает | Где в Windows | Где в Linux |
|---|---|---|---|
| Имя | Название файла в каталоге | Проводник, «Свойства» -> «Общие» | ls |
| Расширение | Часть имени после последней точки, подсказка о формате | Там же, вкладка «Общие», поле «Тип файла» | Та же часть имени, но система на нее почти не опирается |
| Размер | Число байт содержимого | «Размер» и «На диске» | ls -l, stat |
| Даты | Создание, изменение, доступ | «Создан», «Изменен», «Открыт» | stat: Access, Modify, Change, Birth |
| Атрибуты | Флаги: только чтение, скрытый, системный, архивный | «Общие» -> «Атрибуты», кнопка «Другие» | Отдельных флагов «скрытый» нет, скрытость — точка в начале имени |
| Владелец и права | Кто владеет файлом и что разрешено остальным | Вкладка «Безопасность» | ls -l, stat, chmod, chown |
Как посмотреть свойства файла
В Проводнике Windows
- Откройте Проводник и найдите файл.
- Щелкните по нему правой кнопкой мыши и выберите «Свойства» (или выделите файл и нажмите
Alt+Enter). - На вкладке «Общие» будут тип, приложение для открытия, расположение, размер, даты и атрибуты. На вкладке «Безопасность» — права, на «Подробно» — метаданные содержимого.
Командой в PowerShell
Тот же набор свойств PowerShell показывает одной командой. Пример запускался в PowerShell 7.6 под Linux, в Windows команда та же:
Set-Content -Path report.txt -Value "hello"
Get-Item report.txt | Format-List Name, BaseName, Extension, Length, CreationTime, LastWriteTime, LastAccessTime, Attributes
Фактический вывод в Linux-контейнере:
Name : report.txt
BaseName : report
Extension : .txt
Length : 6
CreationTime : 09/23/2026 15:55:31
LastWriteTime : 09/23/2026 15:55:31
LastAccessTime : 09/23/2026 15:55:31
Attributes : Normal
Length = 6: пять букв плюс перевод строки. В Windows даты будут в формате вашей локали, а в Attributes у нового файла обычно стоит Archive.
Командой в Linux
printf 'hello\n' > notes.txt
printf 'secret\n' > .env
ls -la
stat notes.txt
Вывод (Ubuntu 24.04, запуск от root в контейнере):
-rw-r--r-- 1 root root 7 Sep 23 15:55 .env
-rw-r--r-- 1 root root 6 Sep 23 15:55 notes.txt
File: notes.txt
Size: 6 Blocks: 8 IO Block: 4096 regular file
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2026-09-23 15:55:26.363052806 +0000
Modify: 2026-09-23 15:55:26.363052806 +0000
Change: 2026-09-23 15:55:26.363052806 +0000
Birth: 2026-09-23 15:55:26.363052806 +0000
Файл .env виден только с ключом -a: обычный ls -l его не показывает.
Имя и расширение
Имя уникально в пределах одного каталога. Важная разница: Windows не различает регистр (Report.txt и report.txt — один и тот же файл), а Linux различает, там это два разных файла.
| Правило | Windows (NTFS) | Linux (ext4) |
|---|---|---|
| Длина имени | До 255 символов | До 255 байт (кириллица в UTF-8 — 2 байта на букву) |
| Зарезервированные имена | CON, PRN, AUX, NUL, COM1, LPT1 и подобные |
Нет |
| Регистр | Не различается | Различается |
В именах Windows нельзя использовать символы <, >, :, ", /, \, |, ? и *; в Linux запрещены только / и нулевой байт. Длина полного пути — отдельный лимит: старые программы Windows ограничены 260 символами, даже если длинные пути в системе включены.
Расширение — часть имени после последней точки. Windows по нему выбирает программу для открытия, но содержимое файла расширение не меняет: переименовав photo.png в photo.txt, вы получите ту же картинку, которую Блокнот покажет как мусор.
Проводник по умолчанию скрывает известные расширения. Включить показ: «Вид» -> «Показать» -> «Расширения имен файлов». Это полезно для безопасности: файл invoice.pdf.exe при скрытых расширениях выглядит как invoice.pdf, хотя это программа.
Размер: байты и место на диске
В Windows в свойствах два поля: «Размер» — сколько байт в файле, и «На диске» — сколько места он реально занимает. Диск выделяет место кластерами, поэтому файл из 6 байт займет целый кластер. В выводе stat выше то же самое: Size: 6, но Blocks: 8 — это 8 блоков по 512 байт, то есть 4096 байт на диске.
Размер не равен числу символов. Кириллическая буква в UTF-8 занимает 2 байта, это видно в примере на Python ниже. И еще одна деталь единиц: Проводник пишет «КБ», но считает по 1024 байта.
Даты: какая из них что значит
| Windows | Linux (stat) |
Что фиксирует |
|---|---|---|
| Изменен | Modify (mtime) | Последнее изменение содержимого |
| Открыт | Access (atime) | Последнее чтение (обновляется не всегда) |
| Создан | Birth | Появление файла, если файловая система это хранит |
| Нет прямого аналога | Change (ctime) | Изменение свойств: прав, владельца, имени |
Частая ошибка — считать ctime в Linux «временем создания». Это время последнего изменения записи о файле: после chmod оно обновится, а дата создания — нет.
Время доступа система часто обновляет не при каждом чтении ради скорости, так что доказательством «файл открывали» оно не служит. Остальные даты тоже можно выставить вручную: touch -d '2020-01-01 10:00' a.txt в Linux, свойство CreationTime в PowerShell. В проверочном прогоне после touch -d поле Modify стало 2020-01-01, а Change — текущим моментом: подмену выдает именно ctime.
Атрибуты Windows
| Атрибут | Буква в attrib |
Что делает |
|---|---|---|
| Только чтение | R | Программы не должны изменять файл; удаление требует подтверждения |
| Скрытый | H | Проводник не показывает файл, пока не включен показ скрытых |
| Системный | S | Помечает файлы ОС; Проводник прячет их строже |
| Архивный | A | Ставится при изменении; программы резервного копирования по нему находят новые файлы |
«Только чтение» и «Скрытый» меняются галочками на вкладке «Общие», остальные настройки (индексирование, сжатие, шифрование) — кнопкой «Другие». Из командной строки:
attrib +r +h report.txt
attrib report.txt
attrib -r -h report.txt
Важная граница: атрибуты — это не защита. «Скрытый» только прячет файл из списка, а «Только чтение» может снять любой, у кого есть право менять атрибуты. От чужих пользователей защищают права доступа.
Права доступа и владелец
Владелец — учетная запись, которой принадлежит файл; обычно это тот, кто его создал. Владелец может менять права на свой файл. Сменить владельца в Linux может только root (chown), в Windows — администратор через «Безопасность» -> «Дополнительно».
В Windows права хранятся списком (ACL): для каждого пользователя или группы отмечено, что разрешено — чтение, запись, изменение, полный доступ. Посмотреть их можно на вкладке «Безопасность» или командой icacls report.txt.
В Linux модель проще: три набора прав rwx для владельца, группы и всех остальных. Разберем строку -rw-r----- (права 640):
| Позиция | Значение | Кто |
|---|---|---|
- |
Обычный файл (d — каталог) |
— |
rw- = 6 |
Чтение и запись | Владелец |
r-- = 4 |
Только чтение | Группа |
--- = 0 |
Нет доступа | Остальные |
Цифра — сумма: чтение 4, запись 2, выполнение 1. Команда chmod 640 notes.txt дает ровно эту строку, проверено ls -l.
Свойства файла из программы: пример на Python
Полный скрипт: создает файл, печатает его свойства, делает файл доступным только для чтения и пробует записать.
from pathlib import Path
from datetime import datetime
import stat
p = Path("report.txt")
p.write_text("Привет, файл!\n", encoding="utf-8")
st = p.stat()
print("Имя: ", p.name)
print("Основа: ", p.stem)
print("Расширение:", p.suffix)
print("Размер: ", st.st_size, "байт")
print("Символов: ", len(p.read_text(encoding="utf-8")))
print("Изменен: ", datetime.fromtimestamp(st.st_mtime).isoformat(timespec="seconds"))
print("Права: ", stat.filemode(st.st_mode))
# Делаем файл "только для чтения" и пробуем записать
p.chmod(0o444)
print("Права: ", stat.filemode(p.stat().st_mode))
try:
p.write_text("перезапись", encoding="utf-8")
except PermissionError as e:
print("Ошибка: ", type(e).__name__, e)
finally:
p.chmod(0o644)
p.unlink()
Вывод на Python 3.14 в Linux от обычного пользователя:
Имя: report.txt
Основа: report
Расширение: .txt
Размер: 24 байт
Символов: 14
Изменен: 2026-09-23T15:55:20
Права: -rw-r--r--
Права: -r--r--r--
Ошибка: PermissionError [Errno 13] Permission denied: 'report.txt'
Строка «24 байт» при 14 символах — это кириллица в UTF-8. Дата будет вашей.
Тот же скрипт от root выводит все строки, кроме последней: ошибки нет, root записал файл, несмотря на права 444. Права Linux ограничивают обычных пользователей, а администратора — нет. В Windows chmod из Python управляет только атрибутом «Только чтение», а не списком прав ACL.
Как менять свойства безопасно
- Меняйте свойства одного файла, а не всей папки сразу. Рекурсивные команды вроде
chmod -R 777или массовая выдача «Полного доступа» открывают данные всем. - Перед изменением прав в Windows сохраните текущий список:
icaclsумеет выгружать его в файл ключом/saveи восстанавливать ключом/restore. - После изменения проверьте результат:
ls -lилиstatв Linux, вкладка «Безопасность» илиicaclsв Windows. - Перед отправкой документа или фото удалите личные метаданные: «Подробно» -> «Удаление свойств и личной информации». В фото там могут быть координаты съемки.
Если не получилось
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Файл не сохраняется, «Отказано в доступе» | Атрибут «Только чтение» или нет права на запись | Снять атрибут; проверить вкладку «Безопасность» или ls -l |
| Файла нет в папке, хотя он точно есть | Атрибут «Скрытый» или имя с точкой в Linux | Включить показ скрытых; ls -a |
| Файл открывается не той программой | Расширение связано с другим приложением | «Свойства» -> «Приложение» -> «Изменить» |
| Кнопка «Изменить» на вкладке «Безопасность» неактивна | Не хватает прав | Обратиться к владельцу или администратору |
Выводы
- Свойства файла — сведения о нем вне содержимого: имя, расширение, размер, даты, атрибуты, владелец и права доступа.
- Атрибуты Windows («Только чтение», «Скрытый») — флаги удобства, а не защита; от других пользователей защищают права доступа.
- Размер в байтах не равен числу символов и месту на диске: кириллица в UTF-8 занимает 2 байта, а диск выделяет место кластерами.
- В Linux
ctime— время изменения свойств, а не создания; даты файлов можно изменить вручную, поэтому доказательством они не служат. - Посмотреть все свойства можно в окне «Свойства» Проводника, командой
Get-Itemв PowerShell,ls -lиstatв Linux.
Где применяется / связь с практикой
Свойства файлов — повседневная работа администратора: найти, почему пользователь не может сохранить отчет, выдать права группе на общую папку, разобраться со скрытыми файлами после сбоя. В Windows-инфраструктуре к этому добавляются права на сетевые ресурсы, групповые политики и Active Directory.
Освойте тему на практике
Если хотите системно освоить администрирование Windows-серверов и рабочих станций, посмотрите курс «Администратор Windows». Чтобы сначала познакомиться с преподавателями и форматом, подойдут бесплатные открытые уроки Otus.
FAQ
Можно ли изменить дату создания файла?
Да. В PowerShell это делается присваиванием свойства CreationTime, в Linux дату изменения выставляет touch -d. Поэтому по датам нельзя уверенно судить об истории файла.
Почему у папки галочка «Только чтение» стоит в виде квадратика?
Для папок Проводник показывает этот атрибут в неопределенном состоянии: галочка относится к файлам внутри папки, а не к самой папке.
Чем скрытый файл Windows отличается от скрытого файла Linux?
В Windows скрытость — атрибут H, имя любое. В Linux скрытым по соглашению считается файл, имя которого начинается с точки; отдельного флага нет.



