Root
Root — специальная учётная запись пользователя в вычислительных системах, предназначенная для выполнения административных задач. В зависимости от используемой операционной системы, такая учётная запись может называться «root», «администратор» «admin» или «supervisor». Согласно принципу наименьших привилегий, большинство пользователей и приложений должны работать под обычной учётной записью, так как суперпользовательская учётная запись обладает неограниченными возможностями — включая внесение кардинальных изменений, которые могут негативно повлиять на всю систему[1].
Описание
В большинстве случаев принадлежность к суперпользователям определяется именем учётной записи. Однако иногда имя не играет роли — например, в системах семейства Unix, суперпользователем считается любой аккаунт с UID (идентификатором пользователя) равным нулю (uid=0), независимо от того, как именно он называется[1]. В системах с ролевой моделью безопасности, любой пользователь с ролью суперпользователя может выполнять все действия, доступные root.
Unix и Unix-подобные системы
В Unix и подобных операционных системах, root — традиционное имя пользователя, обладающего всеми привилегиями и доступом ко всем файлам и программам вне зависимости от режима работы (однопользовательский или многопользовательский). Альтернативные названия: «baron» в BeOS и «avatar» в некоторых вариантах Unix[2]. В BSD-системах дополнительно может существовать учётная запись toor («root» наоборот, — альтернативный суперпользователь)[3]. Независимо от имени, суперпользователь имеет идентификатор пользователя 0. Root может выполнять действия, недоступные обычным пользователям — например, менять владельца файлов или использовать сетевые порты с номерами ниже 1024.
Название root, возможно, появилось потому, что первоначально только этот пользователь имел право изменять содержимое корневого каталога Unix-системы. Ранее этот каталог считался домашним для root[4], но сейчас стандарт файловой иерархии UNIX (Filesystem Hierarchy Standard) рекомендует использовать в качестве домашней директории root папку /root[5]. Первый процесс, запускаемый в Unix-системе при инициализации (обычно init), работает с привилегиями root и порождает все остальные процессы, передавая часть своих прав по наследству. Только процесс, запущенный от root, может изменить свой идентификатор пользователя; обра́тной операции не предусмотрено. Принудительное ограничение своих привилегий («сброс root-привилегий») часто делают для повышения безопасности и уменьшения риска распространения уязвимостей. Программы вроде login после успешной аутентификации пользователя передают право запуска процессов с его привилегиями.
Использование root для обычной работы не рекомендуется[6],[7] поскольку даже незначительные опечатки или ошибки в командах могут привести к серьёзным проблемам. Вместо этого рекомендуется использовать обычную учётную запись, а для административных задач — команды su (смена пользователя) или sudo (выполнение от имени пользователя). В случае su требуется знать пароль root, а с sudo необходимо, чтобы пользователь был внесён в файл /etc/sudoers, обычно через членство в группах wheel[8], adm[9], admin или sudo.
Использование sudo предпочтительнее, поскольку оставляет журнал аудита действий и позволяет выяснить, кто и какие административные операции выполнял[10].
Некоторые системы, такие как macOS и отдельные дистрибутивы Linux (особенно Ubuntu[6]), настроены так, чтобы пользователь, созданный при установке, мог по умолчанию выполнять задачи от root через sudo (при этом требуется вводить собственный пароль). Иногда сам root по умолчанию отключён и не может быть использован напрямую[6]. В мобильных ОС, например Apple iOS и Android, доступ к суперпользователю заблокирован в целях безопасности, однако зачастую его можно получить через эксплойты системы защиты. В некоторых ОС, например Plan 9, суперпользователь отсутствует как понятие[11].
Microsoft Windows
В системах, основанных на Windows NT, включая Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows 8, Windows 10 и Windows 11, всегда должна присутствовать хотя бы одна учётная запись администратора или возможность повысить привилегии до суперпользователя, начиная с Windows Vista, при помощи Контроля учётных записей — UAC[12]. В Windows XP и более ранних версиях существует встроенная учётная запись администратора, которая скрывается при наличии хотя бы одного другого администратора[13]. Эта учётная запись обычно создаётся с пустым паролем[13], что представляет опасность безопасности: если пароль не задан, физический пользователь может получить полный доступ через неё. Поэтому в более новых версиях Windows — начиная с Vista — встроенная учётная запись отключена по умолчанию[13]. Удалённый доступ к ней невозможен.
Учётная запись администратора Windows не является полным аналогом root: встроенная запись «Administrator» и пользовательская запись администратора обладают одинаковым уровнем привилегий. Учётная запись, создаваемая при установке Windows, обычно обладает правами администратора. В системах без UAC административные аккаунты не изолируют систему от угроз, связанных с полным доступом root, что делает её уязвимой для вредоносных программ. Для повышения безопасности в ранних версиях Windows рекомендуется осуществлять аутентификацию по паролю только по необходимости из обычной учётной записи.
В Windows Vista/7/8/10/11 при попытке запуска процесса с повышенными привилегиями появляется диалоговое окно UAC. Для учётных записей администратора подтверждение не требует ввода данных; для стандартных пользователей необходимо указать учётные данные администратора. В Windows XP процессы с правами администратора могут запускаться без дополнительной аутентификации, что увеличивает риски и стало одной из причин появления UAC. Запуск с повышенными правами из обычной учётной записи осуществляется через функцию «Запуск от имени администратора» или с помощью команды runas и ввода учётных данных администратора. Рекомендуется всегда устанавливать пароль на встроенную учётную запись администратора, чтобы минимизировать риски доступа с пустым паролем.
В Windows NT, 2000 и выше роль root выполняет учётная запись «Администратор»[14].
Novell NetWare
В Novell NetWare суперпользователь назывался «супервайзер»[15], позже — «админ».
OpenVMS
В OpenVMS суперпользовательская учётная запись имеет имя «SYSTEM».
Устаревшие персональные системы
Во многих ранних ОС для персональных компьютеров каждый пользователь имел все права, — например, DOS не поддерживал концепцию нескольких учётных записей, а в Windows 95 и аналогах наличие настроек отдельных пользователей служило лишь для персонализации, при этом полный контроль над системой был всегда у любого вошедшего.
См. также
Примечания
- ↑ 1 2 getpwid. opengroup.org. Дата обращения: 23 июня 2024. Архивировано 22 августа 2015 года.
- ↑ The Jargon File (version 4.4.7). catb.org. Дата обращения: 23 июня 2024. Архивировано 18 апреля 2021 года.
- ↑ What is this UID 0 toor account? freebsd.org. Дата обращения: 23 июня 2024. Архивировано 22 декабря 2020 года.
- ↑ Что такое root? — определение от The Linux Information Project. LINFO. Дата обращения: 23 июня 2024. Архивировано 8 мая 2021 года.
- ↑ /root : домашний каталог пользователя root (опционально). Дата обращения: 23 июня 2024. Архивировано 25 мая 2005 года.
- ↑ 1 2 3 Rootsudo. ubuntu.com. Дата обращения: 23 июня 2024. Архивировано 5 ноября 2011 года.
- ↑ 4.4. Administrative Controls. redhat.com. Дата обращения: 23 июня 2024. Архивировано 5 июня 2015 года.
- ↑ 2.3. Configuring sudo Access. redhat.com. Дата обращения: 23 июня 2024. Архивировано 22 декабря 2019 года.
- ↑ difference adm - root. Дата обращения: 23 июня 2024. Архивировано 5 ноября 2016 года.
- ↑ Brian Wotring. Host Integrity Monitoring Using Osiris and Samhain. — Elsevier, 2005. — P. 32. — ISBN 978-0-08-048894-3.
- ↑ Security in Plan 9. Bell Labs. Дата обращения: 23 июня 2024. Архивировано 11 июля 2018 года.
- ↑ Microsoft Corporation. Microsoft.com. Дата обращения: 23 июня 2024. Архивировано 11 июля 2012 года.
- ↑ 1 2 3 Enable and Disable the Built-in Administrator Account. Microsoft.com (25 июля 2008). Дата обращения: 23 июня 2024. Архивировано 27 ноября 2013 года.
- ↑ The LocalSystem Account. microsoft.com. Microsoft. Дата обращения: 23 июня 2024. Архивировано 13 марта 2016 года.
- ↑ Supervisor (Bindery) User Created on Every NetWare 4 Server. novell.com. Дата обращения: 23 июня 2024. Архивировано 7 ноября 2017 года.
Литература
- Root — определение. The Linux Information Project (LINFO). Дата обращения: 23 июня 2024. Архивировано 8 мая 2021 года.
- Введение в безопасность Mac OS X. developer.apple.com. Дата обращения: 23 июня 2024. Архивировано 5 марта 2004 года.