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

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

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

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

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

Что такое права доступа и на что они влияют
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, она сначала спросит пароль администратора системы, а потом начнёт удалять все файлы и папки в текущей папке. Если вы предварительно оказались в корневой папке своей системы, то эта команда молча сотрёт всё, что было на диске, в том числе системные файлы. Системное ядро запаникует, консоль зависнет, и ваш компьютер превратится в тыкву. Это настоящая команда саморазрушения. Пруф:

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

Что дальше

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

Текст:

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

Редактор:

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

Художник:

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

Корректор:

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

Вёрстка:

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

Соцсети:

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

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

Многие думают, что на языке Wiring, но на самом деле…

medium
Nginx — быстрый, дерзкий и суперпопулярный сервер
Nginx — быстрый, дерзкий и суперпопулярный сервер

Сделан в России

medium
Мощь алгоритмов: автоматический поиск всех возможных комбинаций
Мощь алгоритмов: автоматический поиск всех возможных комбинаций

Сдвигаем парадигму с помощью силы компьютеров

medium
Зачем нужен язык R
Зачем нужен язык R

Для бигдаты, аналитики и точной статистики

easy
Для чего на сервере нужен файл .htaccess
Для чего на сервере нужен файл .htaccess

И что с ним можно сделать полезного

medium
Карьера аналитика данных в 26 лет: Касперский, X5 и «Много лосося»
Карьера аналитика данных в 26 лет: Касперский, X5 и «Много лосося»

Поговорили с Антоном Леоновым, выпускником ВШЭ и ментором «Практикума».

medium
Кто такая Unity и почему она всем нравится

Бесплатный движок с классной графикой, реалистичной физикой и понятным интерфейсом.

easy
Вакансия на 210 тысяч: что такое .NET и зачем он нужен

Для тех, кто любит программировать и точка

easy
Зачем нужны менеджеры
Зачем нужны менеджеры

Самое понятное объяснение роли менеджера.

easy
Кто такой джуниор и стоит ли идти им работать?
Кто такой джуниор и стоит ли идти им работать?
easy
medium