Что произошло бы, если бы я создал учетную запись, названную 'корнем'?

Если я создал учетную запись пользователя в названной Ubuntu root, это автоматически имело бы корневые полномочия? Повредить систему? Вызвать незначительный сбой в матрице? Что произошло бы?

30
задан 9 October 2016 в 07:56

6 ответов

Имена пользователей должны быть уникальными, таким образом, как упомянуто ответ Owen Hines , Вы не смогли бы создать этого пользователя. Однако ключевой пункт здесь - то, что полномочия суперпользователя (все возможные полномочия) не предоставляет имя пользователя root, но UID.

пользователь с UID 0 является суперпользователем.

Так, если бы у пользователя с UID 0 было другое имя, и Вы создали пользователя, позвонившего root, у них не было бы особого статуса.

я отсылаю Вас к тег Wiki!

46
ответ дан 23 November 2019 в 00:46

Это не позволило бы Вам, потому что уже будет root пользователь.

, Но, как Florian Diesch сказал в комментариях:

инструменты Some будут жаловаться, но можно всегда редактировать /etc/passwd, и etc/shadow вручную для создания второго пользователя назвал root.

15
ответ дан 23 November 2019 в 00:46

Сначала, как, как другие заявили, Вы изменяете пользователя с UID 0 к чему-то еще. Затем можно создать обычного пользователя с названием корня и UID выше затем 1000. Это будет работать "прекрасное". Все полномочия и базовые системные функции используют UID и не имя пользователя. На самом деле это - хороший первый шаг в укреплении системы Linux. (намного лучше для отключения корня но прежде sudo мы раньше делали это).

Теперь относительно того, что произойдет.

Большую часть времени ничто. Все системные вызовы, которые имеют отношение к авторизации или аутентификации, используют UID (что я знаю). И это был тот путь в течение некоторого времени. Ваша система продолжит работать, как обычно. Системные инструменты отразят новое имя пользователя, но продолжат работать обычно. Другими словами, "корень" в конвенции и не наборе в камне.

Тем не менее я уверен, что существуют некоторые инструменты и программы, которые плохо записаны. Программы, которые проверяют переменную среды $USER, могут действовать неправильно. Обычно это сценарии и маленькие проекты, но Вы могли провести некоторое время, разыскивая, что одна плохая фиксация, 6 лет назад в fdisk, который продолжает давать Вам головную боль.

Это - что-то, что я раньше делал все время. Это было легким шагом и подпадает под правило "непредсказуемых имен пользователей". Существуют НАМНОГО лучшие способы достигнуть тех же целей сегодня все же.

5
ответ дан 23 November 2019 в 00:46

Как создать 2-й 'корень':

Да, в теории, не должно быть никаких двух пользователей с тем же именем пользователя или теми же идентификаторами. И стандартные утилиты являются надежными и не сделают таких пользователей для Вас. Но Вы всегда можете редактировать / и т.д. / пароль вручную.

, Например, я сделал:

$ sudo adduser root2 # created ordinary user
$ sudo vim /etc/passwd # edit last line, change 'root2' to 'root'. 
$ sudo -u '#1002' id # 1002 is UID of new user, it's in last line of /etc/passwd
uid=1002(root) gid=1002(root2) группы=1002(root2)

, Как Вы видите, мы - корень теперь! Да, это не реальный корень (не uid=0), но это - те же четыре буквы. Впечатляющий и бесполезный.

, Как создать лучше 2-й 'корень':

кроме того, можно сделать другую модификацию. Оставьте имя пользователя как есть, (yourname или root2), но измените uid.

$ tail -n 1 /etc/passwd
root2:x:0:0:,,,:/home/root2:/bin/bash

(см., поля UID и GID, обнуляет), Теперь, у Вас есть обычный (некорневой) пользователь почти с неподозрительным именем пользователя (или сделайте имя пользователя 'johndoe' для лучшего эффекта), но на самом деле, у этого пользователя есть супердержавы!

$ fdisk /dev/sda
fdisk: unable to open /dev/sda: Permission denied
$ sudo -u root2 fdisk /dev/sda

Command (m for help):

, Как Вы видите, обычный пользователь не может использовать fdisk на/dev/sda, но root2 может сделать что-либо!

Этот простой прием, иногда используемый после того, как, система взламывается для обеспечения бэкдора. Даже если реальный корень изменит его ключи/пароли, хакер все еще будет иметь полный контроль над системой через другого пользователя с uid=0.

, Как матрица работает

На самом деле, ни имя пользователя 'корень', ни uid=0 не является волшебным отдельно. Это - просто вопрос конвенции. И это даже не всегда верно. (см. этот вопрос: корень считает, всегда имеют UID/GID 0? ), код Ядра является волшебным. На самом деле код пространства пользователя сам - не может сделать ничего, что может сделать корень. Даже если выполнения как корень! Корневое питание находится в ядре. например, если Вы делаете "кошку/etc/shadow" (только базируются, обычно может делать это),/bin/cat программа называет libc открытым () функция, которая является все еще кодом пространства пользователя, и это открывается (), функция выполняет системный вызов ядра. Затем само ядро решает то, что делает к. Например, ядро может позволить некоторую операцию, если у эффективного пользователя есть идентификатор == 0.

В теории, если Вы измените некоторый код в ядре и обработаете пользователя 'www-данных' по-другому - некоторые операции могут быть позволены только для пользователя 'www-данных' (и не позволены даже базироваться).

1
ответ дан 23 November 2019 в 00:46

Как другие объяснили, это - UID = 0, дает пользователю "супердержавы", не имя пользователя, являющееся "корнем". Таким образом, если бы Вам так или иначе удалось создать другого пользователя, названного "корнем" (после переименования/удаления исходного) - то суперсостояние пользователя зависело бы от UID, который Вы дали ему.

, Который также приводит к другой интересной идее: полностью возможно иметь многочисленных пользователей с тем же UID (который делает их по существу тем же пользователем от точки полномочий файловой системы, но позвольте иметь отличающийся, скажем, окружают и корневой каталог). На самом деле некоторые подобные UNIX системы имеют другую учетную запись суперпользователя, названную toor (корень назад), который позволяет иметь две учетных записи суперпользователя с различными настройками.

1
ответ дан 23 November 2019 в 00:46

Большинство 'удобных для пользователя' инструментов проверит по этому и не позволит Вам создать учетную запись с именем пользователя, которое уже взято.

, Если Вы обходите это и вручную добавляете вторую корневую учетную запись к Вашему/etc/passwd и/etc/shadow, затем какой будет использоваться, я предполагаю, зависел бы, если Вы помещаете его прежде или после исходного. Как все учетные записи пользователей в системе Unix, это будет также иметь доступ суперпользователя, только если его UID является нулем, независимо от имени.

0
ответ дан 23 November 2019 в 00:46

Другие вопросы по тегам:

Похожие вопросы: