Если бы я создал учетную запись пользователя в Ubuntu под названием root
, будет ли он автоматически иметь права root? Сломать систему? Вызывает глюк в матрице? Что случилось бы?
permissions
root
users
Забытый король
источник
источник
Ответы:
Имена пользователей должны быть уникальными, поэтому, как отмечается в ответе Оуэна Хайнса , вы не сможете создать этого пользователя. Однако ключевым моментом здесь является то, что полномочия суперпользователя (все возможные разрешения) предоставляются не именем пользователя
root
, а UID.Пользователь с UID 0 является суперпользователем.
Таким образом, если пользователь с UID 0 имеет другое имя, и вы создали пользователя с именем
root
, они не будут иметь никакого специального статуса.Я отсылаю вас к корневому тегу вики!
источник
root
. Не отличная идея, но возможно. Так, например, можно создать учетную запись суперпользователя, вызываемуюgod
с помощью uid0
, а обычного пользователя -root
с помощью uid1000
или какого-то другого числа.Это не позволит вам, потому что уже будет
root
пользователь.Но, как сказал Флориан Диш в комментариях:
источник
chown root file
?Во-первых, как, как уже говорили другие, вы меняете пользователя с UID 0 на что-то другое. Затем вы можете создать обычного пользователя с именем root и UID выше 1000. Это будет работать «отлично». Все разрешения и основные функции системы используют UID, а не имя пользователя. На самом деле это хороший первый шаг в усилении системы Linux. (гораздо лучше отключить root, но до sudo мы это делали).
Теперь о том, что произойдет.
Большую часть времени ничего. Все системные вызовы, связанные с авторизацией или аутентификацией, используют UID (о котором я знаю). И так было в течение некоторого времени. Ваша система будет работать как обычно. Системные инструменты будут отражать новое имя пользователя, но продолжают работать в обычном режиме. Другими словами, «корень» условен и не установлен в камне.
Тем не менее, я уверен, что есть некоторые инструменты и программы, которые плохо написаны. Программы, которые проверяют переменную среды $ USER, могут работать неправильно. Обычно это скрипты и небольшие проекты, но вы могли бы потратить некоторое время на отслеживание этого плохого коммита, 6 лет назад в fdisk, который продолжает вызывать у вас головную боль.
Это то, что я делал все время. Это был легкий шаг, подпадающий под правило «непредсказуемых имен пользователей». Однако сегодня существует НАМНОГО лучших способов достижения тех же целей.
источник
Как объяснили другие, именно UID = 0 дает пользователю «суперспособности», а не имя пользователя «root». Таким образом, если вам каким-то образом удалось создать другого пользователя с именем «root» (после переименования / удаления исходного) - супер-статус пользователя будет зависеть от UID, который вы ему дали.
Что также приводит к другой интересной идее: вполне возможно иметь несколько пользователей с одинаковым UID (что делает их по существу одним и тем же пользователем с точки зрения разрешений файловой системы, но позволяет иметь разные, скажем, оболочки и домашний каталог). Фактически, некоторые UNIX-подобные системы имеют другую учетную запись суперпользователя, называемую toor (root back ), которая позволяет иметь две учетные записи суперпользователя с различными настройками.
источник
Как создать 2-й корень:
Да, теоретически, не должно быть двух пользователей с одинаковыми именами или идентификаторами. А стандартные утилиты надежны и не сделают таких пользователей для вас. Но вы всегда можете редактировать / etc / passwd вручную.
Например, я сделал:
Как видите, мы теперь root. Да, это не настоящий root (не uid = 0), но это те же четыре буквы. Впечатляет и бесполезно.
Как лучше создать 2-й «корень»:
Также вы можете сделать другие модификации. Оставьте имя пользователя как есть (ваше имя или root2), но измените uid.
(см. поля UID и GID равны нулю) Теперь у вас есть обычный (не root) пользователь с почти не подозрительным именем пользователя (или для лучшего эффекта создайте имя пользователя 'johndoe'), но на самом деле этот пользователь обладает суперспособностями!
Как видите, обычный пользователь не может использовать fdisk в / dev / sda, но root2 может делать все что угодно!
Этот простой трюк иногда используется после взлома системы для обеспечения бэкдора. Даже если настоящий root изменит свои ключи / пароли, хакер все равно будет иметь полный контроль над системой через другого пользователя с uid = 0.
Как работает матрица
На самом деле, ни имя пользователя root, ни uid = 0 само по себе не волшебно. Это просто вопрос соглашения. И это даже не всегда так. (см. этот вопрос: всегда ли у учетной записи root UID / GID 0? ) Код ядра является волшебным. На самом деле, сам код пользовательского пространства - не может сделать ничего, что может сделать root. Даже если работает от имени root! Корневая сила в ядре. например, если вы делаете «cat / etc / shadow» (обычно это может делать только root), программа / bin / cat вызывает функцию libc open (), которая по-прежнему является кодом пользовательского пространства, и эта функция open () выполняет системный вызов ядра. Тогда само ядро решает, что делать. Например, ядро может разрешить некоторые операции, если эффективный пользователь имеет id == 0.
Теоретически, если вы измените какой-то код в ядре и по-разному будете обрабатывать пользователя 'www-data' - некоторые операции могут быть разрешены только для пользователя 'www-data' (и даже не могут получить права root).
источник
Большинство «удобных» инструментов проверят это и не позволят вам создать учетную запись с уже введенным именем пользователя.
Если вы обойдете это и вручную добавите в учетную запись / etc / passwd и / etc / shadow вторую корневую учетную запись, то какая из них будет использоваться, я думаю, будет зависеть, если вы поставите ее до или после первоначальной. Как и все учетные записи пользователей в системе Unix, он также будет иметь доступ суперпользователя, только если его UID равен нулю, независимо от имени.
источник