В вычислительной технике суперпользователь — это специальная учетная запись пользователя, используемая для системного администрирования . В зависимости от операционной системы (ОС) фактическое имя этой учетной записи может быть root , administrator , admin или supervisor . В некоторых случаях фактическое имя учетной записи не является определяющим фактором; например, в Unix-подобных системах пользователь с идентификатором пользователя (UID) равным нулю является суперпользователем [т. е. uid=0] независимо от имени этой учетной записи; [1] а в системах, реализующих ролевую модель безопасности, любой пользователь с ролью суперпользователя (или ее синонимами) может выполнять все действия учетной записи суперпользователя. Принцип наименьших привилегий рекомендует, чтобы большинство пользователей и приложений работали под обычной учетной записью для выполнения своей работы, поскольку учетная запись суперпользователя способна вносить неограниченные, потенциально неблагоприятные общесистемные изменения.
В компьютерных ОС типа Unix (например, Linux ) root — это общепринятое имя пользователя, который имеет все права или разрешения (на все файлы и программы) во всех режимах (одно- или многопользовательских). Альтернативные имена включают baron в BeOS и avatar в некоторых вариантах Unix. [2] BSD часто предоставляет учетную запись toor («root», написанную наоборот) в дополнение к учетной записи root. [3] Независимо от имени, суперпользователь всегда имеет идентификатор пользователя 0. Пользователь root может делать много вещей, которые не может делать обычный пользователь, например, менять владельца файлов и привязываться к сетевым портам с номерами ниже 1024.
Название root могло возникнуть из-за того, что root — единственная учетная запись пользователя, имеющая право изменять корневой каталог системы Unix. Первоначально этот каталог считался домашним каталогом root [4] , но теперь стандарт иерархии файловой системы UNIX рекомендует, чтобы домашний каталог root находился в /root [5] . Первый процесс, загружаемый в Unix-подобной системе, обычно называемый init , запускается с привилегиями root. Он порождает все остальные процессы напрямую или косвенно, которые наследуют привилегии своих родителей. Только процессу, работающему как root, разрешено изменять свой идентификатор пользователя на идентификатор другого пользователя; как только он это сделает, пути назад уже нет. Иногда это называется сбросом привилегий root и часто делается в качестве меры безопасности, чтобы ограничить ущерб от возможного заражения процесса. Другой случай — это вход в систему и другие программы, которые запрашивают у пользователей учетные данные и в случае успешной аутентификации позволяют им запускать программы с привилегиями их учетных записей.
Часто рекомендуется, чтобы root никогда не использовался как обычная учетная запись пользователя, [6] [7], поскольку простые типографские ошибки при вводе команд могут нанести серьезный ущерб системе. Вместо этого следует использовать обычную учетную запись пользователя, а затем использовать команду su (substitute user) или sudo (substitute user do). Подход su требует, чтобы пользователь знал пароль root, в то время как метод sudo требует, чтобы пользователь был настроен с полномочиями работать «как root» в файле /etc/sudoers , как правило, косвенно, путем включения в группу wheel , [8] adm , [9] admin или sudo .
По ряду причин подход sudo в настоящее время является, как правило, предпочтительным — например, он оставляет аудиторский след того, кто использовал команду и какие административные операции они выполнили. [10]
Некоторые ОС, такие как macOS и некоторые дистрибутивы Linux (в первую очередь Ubuntu [6] ), автоматически предоставляют первоначально созданному пользователю возможность работать как root через sudo – но это настроено так, чтобы запрашивать у него пароль перед выполнением административных действий. В некоторых случаях фактическая учетная запись root отключена по умолчанию, поэтому ее нельзя использовать напрямую. [6] В ОС, ориентированных на мобильные платформы, таких как Apple iOS и Android , доступ суперпользователя недоступен по умолчанию, но, как правило, систему безопасности можно использовать для его получения. [ необходима цитата ] В некоторых системах, таких как Plan 9 , суперпользователя вообще нет. [11]
В Windows NT и более поздних системах, созданных на ее основе (таких как Windows 2000 , Windows XP , Windows Server 2003 и Windows Vista / 7 / 8 / 10 / 11 ), должна быть как минимум одна учетная запись администратора (Windows XP и более ранние версии) или одна, способная повысить привилегии до суперпользователя (Windows Vista/7/8/10/11 через контроль учетных записей пользователей ). [12] В Windows XP и более ранних версиях есть встроенная учетная запись администратора, которая остается скрытой, если существует учетная запись, эквивалентная администратору пользователя. [13] Эта встроенная учетная запись администратора создается с пустым паролем. [13] Это создает риски безопасности, поскольку локальные пользователи смогут получить доступ к компьютеру через встроенную учетную запись администратора, если пароль останется пустым, поэтому учетная запись по умолчанию отключена в Windows Vista и более поздних версиях из-за введения контроля учетных записей пользователей (UAC). [13] Удаленные пользователи не могут получить доступ к встроенной учетной записи администратора.
Учетная запись администратора Windows не является точным аналогом учетной записи root в Unix — Administrator, встроенная учетная запись администратора и учетная запись администратора пользователя имеют одинаковый уровень привилегий. Учетная запись пользователя по умолчанию, созданная в системах Windows, является учетной записью администратора. В отличие от учетных записей администраторов macOS, Linux и Windows Vista/7/8/10, учетные записи администраторов в системах Windows без UAC не изолируют систему от большинства ловушек полного доступа root. Одна из таких ловушек включает в себя снижение устойчивости к заражению вредоносным ПО. Чтобы избежать этого и поддерживать оптимальную безопасность системы в системах Windows до UAC, рекомендуется просто проходить аутентификацию при необходимости из учетной записи стандартного пользователя, либо с помощью пароля, установленного для встроенной учетной записи администратора, либо с помощью другой учетной записи администратора.
В учетных записях администраторов Windows Vista/7/8/10/11 появится запрос на аутентификацию запуска процесса с повышенными привилегиями. Обычно для аутентификации запроса UAC в учетных записях администраторов учетные данные пользователя не требуются, но для аутентификации запроса UAC в учетных записях стандартных пользователей требуется ввести имя пользователя и пароль администратора. В учетных записях администраторов Windows XP (и более ранних системах) аутентификация не требуется для запуска процесса с повышенными привилегиями. Это создает риск безопасности, который привел к разработке UAC. Пользователи могут настроить процесс на запуск с повышенными привилегиями из стандартных учетных записей, установив для процесса значение «запуск от имени администратора» или используя команду runas и аутентификацию запроса с учетными данными (имя пользователя и пароль) учетной записи администратора. Большая часть преимуществ аутентификации из стандартной учетной записи сводится на нет, если используемые учетные данные учетной записи администратора имеют пустой пароль (как во встроенной учетной записи администратора в Windows XP и более ранних системах), поэтому рекомендуется установить пароль для встроенной учетной записи администратора.
В Windows NT , 2000 и выше корневой пользователь является учетной записью администратора. [14]
В Novell NetWare суперпользователь назывался «supervisor», [15] позже «admin».
В OpenVMS «SYSTEM» — это учетная запись суперпользователя ОС.
На многих старых ОС на компьютерах, предназначенных для личного и домашнего использования, любой пользователь системы имел полные привилегии. Во многих таких системах, таких как DOS , не было концепции множественных учетных записей, и хотя другие, такие как Windows 95 , допускали множественные учетные записи, это было сделано только для того, чтобы каждая могла иметь свой собственный профиль предпочтений — все пользователи по-прежнему имели полный административный контроль над машиной.