Что такое права доступа и на что они влияют
medium

Что такое права доступа

И на что они влияют

Иногда при работе с файлами можно увидеть такое сообщение — «Отсутствует доступ к файлу». Сам файл есть, он на вашем компьютере, вы его главный и единственный пользователь, но почему-то вам не дают распоряжаться файлами. В чём дело? 

А дело в том, что в операционной системе есть две важные сущности, которые отвечают за этот процесс: 

Что такое права доступа и на что они влияют
Windows не даёт вам получить доступ к файлу на вашем же собственном жёстком диске

При чём тут операционная система

Когда вы хотите что-то сделать с файлом на компьютере, это действие происходит не напрямую: оно проходит через операционную систему. Копирование, переименование, чтение файла — всё через операционку. 

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

Среди проверок может быть и проверка прав доступа. 

Что такое права доступа

Так вот, у каждого пользователя в системе есть свои права: они определяют, что может делать этот пользователь, а что нет. Что они включают в себя: 

  • Какие файлы и папки пользователь может прочитать.
  • В какие файлы и папки он может записать данные.
  • Какие программы может запустить, какие инструкции исполнить.

Если операционная система видит, что пользователь хочет сделать что-то за пределами своих прав, она должна его остановить. 

Какие ещё есть пользователи на компьютере кроме нас

Даже если вы работаете за компьютером в гордом одиночестве, параллельно с вами работают системные службы и сервисы. Обычно у каждой это службы есть либо свой «системный пользователь», либо они объединены в едином пользователе «система»: 

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

Если в Windows открыть диспетчер задач, вы заметите этих скрытых пользователей и службы:

Что такое права доступа и на что они влияют
Диспетчер задач в Windows: некоторые процессы принадлежат системе, другие — сетевым службам, третьи — местным службам
Что такое права доступа и на что они влияют
Мониторинг системы в MacOS. Пользователь root — это корень системы, а есть ещё дополнительные пользователи-службы. Самого пользователя зовут mike, и ему принадлежит малая часть процессов

Почему права доступа разные и зачем это нужно

Основная задача разделения прав доступа — чтобы один пользователь не мог помешать работе другого пользователя и системы в целом. 

Например, в Windows есть пользователь SYSTEM (Система) или Администратор, а в MacOS и Linux — root. Они отвечают за самые важные параметры и настройки компьютера, поэтому у них самый высокий уровень доступа — они могут делать с любыми файлами что угодно. При этом им могут принадлежать какие-то свои файлы и папки, к которым доступ может быть запрещён для других пользователей.

У других служебных пользователей уровень доступа другой — они могут распоряжаться только своими файлами, но запретить к ним доступ другим пользователям они тоже могут. 

А обычному пользователю можно работать только со своими файлами и с теми, к которым разрешили доступ другие пользователи. Поэтому мы можем просматривать разные системные файлы, но удалить что-то действительно важное нам не позволят права доступа.

Чтение, запись и исполнение

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

Например, одному файлу можно назначить права «Все могут читать, но писать и запускать может только администратор». А какой-нибудь папке общего доступа можно сказать «В тебя могут писать файлы все, читать тоже все».

Как поменять права доступа

В MacOS и Linux права доступа меняются двумя командами: 

chown меняет владельца и группу

chmod управляет разрешениями файла

Подробнее про эти команды поговорим в статье про скрипты в операционных системах.

В Windows права доступа меняются сложнее — нужно щёлкнуть правой кнопкой мыши по файлу, выбрать вкладку «Безопасность», в ней нажать кнопку «Изменить» и в новом окне добавить пользователей или настроить права для тех, кто есть в списке:

Что такое права доступа и на что они влияют

Как заполучить безграничную власть

Чтобы получить системные права на всё, нужно зайти в неё, имея права суперпользователя или администратора. В Linux это можно сделать двумя способами: 

  1. Залогиниться в «Терминал» под именем и с паролем суперпользователя.
  2. Перед исполнением опасной команды использовать команду sudo. Она позволяет выполнить следующую за ней команду от имени администратора системы root. 

Например, если в Ubuntu набрать в терминале команду sudo rm -rf --no-preserve-root, она сначала спросит пароль администратора системы, а потом начнёт удалять все файлы и папки в текущей папке. Если вы предварительно оказались в корневой папке своей системы, то эта команда молча сотрёт всё, что было на диске, в том числе системные файлы. Системное ядро запаникует, консоль зависнет, и ваш компьютер превратится в тыкву. Это настоящая команда саморазрушения. Пруф:

Что такое права доступа и на что они влияют
Самоуничтожение компьютера одной командой (хоть и не с первого раза)

Что дальше

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

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Алина Грызлова

Курс «C++ для бэкенда»
Если интересно делать быстрые высоконагруженные системы, посмотрите на программу курса «Яндекс Практикума». Понятная теория, тренажеры, поддержка ревьюеров и обучение в группе, всё как надо.
Посмотреть
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
medium