Как НЕ стать пользователем root? Являются ли администраторы root?

Я установил Ubuntu на свой компьютер. Чтобы войти в систему, я использую имя пользователя и пароль, которые я создал во время установки. Означает ли это, что я пользователь root? Если да, то как я могу стать не root? Похоже, что пользователь, не являющийся пользователем root, более безопасен, чем пользователь admin.

38 голосов | спросил FirstName LastName 20 Jam1000000amSun, 20 Jan 2013 05:48:00 +040013 2013, 05:48:00

5 ответов


72

Вы являетесь администратором, но не root. Пользователь root может сделать что угодно. Администраторы могут выполнять действия как root , но обычно то, что делают администраторы, не выполняется с помощью root. Таким образом, у вас есть полный контроль над вашей собственной системой, но только когда вы выберите , чтобы использовать его.

Ubuntu запрашивает ваш пароль, когда вы пытаетесь сделать что-то вроде root, чтобы убедиться, что это действительно вы.

Учетные записи пользователей: человек и в противном случае

У реальных пользователей есть учетные записи пользователей. Вы создали такую ​​учетную запись, когда вы установили Ubuntu. Но не все учетные записи пользователей представляют реальных пользователей .

Настоящие человеческие пользователи получают (и отрицают) способности через свои учетные записи пользователей. Они должны использовать свои учетные записи пользователей для использования системы; поэтому к ним применяются свои возможности и ограничения своих учетных записей.

Учетные записи пользователей также используются для кодирования наборов способностей и ограничений. Некоторые учетные записи пользователей - в большинстве случаев, если у вас есть много человеческих пользователей машины - существуют, чтобы определенные программы или команды могли выполняться с их идентификацией, личность с правильными способностями и ограничениями для задание.

Например, существует пользователь www-data, чтобы при запуске веб-сервера он обладал данными, доступными для сервера. Ни один реальный пользователь должен быть уполномочен делать непроверенные изменения этих данных, и веб-сервер не должен быть уполномочен выполнять любые действия, ненужные для обслуживания Интернета. Следовательно, как веб-данные, так и остальная часть системы более безопасны от случайного или преднамеренного поломки, чем если бы веб-сервер управлялся каким-то человеческим пользователем, который имел бы все полномочия веб-сервера (и чьи полномочия веб-сервер обладают).

Самая важная учетная запись не для человека

суперпользователь , чье имя пользователя root, это учетная запись пользователя, отличная от человека, с очень конкретной комбинацией способностей и ограничений: всех способностей и никаких ограничений .

root 's разрешено делать что-либо. Есть еще вещи root не могут сделать, потому что сама система не может выполнять или иметь смысл из них. Таким образом, root не может убить процесс в бесперебойном сне , или сделайте камень слишком тяжелым для перемещения, затем переместите его .

Многие важные системные процессы, такие как init , запустите как root и root используется для выполнения административных задач.

Могу ли я войти в систему как root?

Можно настроить учетную запись root, чтобы можно было войти в систему с паролем, но по умолчанию это не включено в Ubuntu , Вместо этого вы можете думать о root как о www-data, lp, nobody, и другие счета, не относящиеся к человеку. (Запустите cat /etc/passwd или getent passwd, чтобы увидеть их все.)

Пользователи пользователей регистрируются со своими учетными записями пользователей, а затем, если какая-либо задача должна выполняться с другой учетной записью пользователя, они заставляют эту задачу выполнять с этим удостоверением , не имея при этом зарегистрирован в качестве этого пользователя.

Можно настроить других нечеловеческих пользователей, напримерwww-data, поэтому вы также можете войти в систему как они. Это довольно редко, хотя, хотя в некоторых других Unix-подобных операциях обычно регистрируется как root в терминале . Риски для запуска всего графического интерфейса как root, в сочетании с тем, сколько графических программ не предназначено для запуска в качестве root и может не работать должным образом, означает, что вы никогда не должны пытаться получить root -owned рабочий стол .

Обратите внимание, что при входе в систему как root по умолчанию отключен в Ubuntu, есть способы получить root без аутентификации как root, которые производят аналогичный эффект: наиболее распространенными являются sudo -s или -i , и аналогичные методы . (Не волнуйтесь, если вы не знаете, что это такое.) Это не вход в систему: в режиме восстановления вы становитесь root перед тем, как произойдет логин; с помощью методов sudo, вы просто запускаете оболочку как root.

Администраторы

В Ubuntu администраторы - это пользователи, которые могут делать все, что захотят, в качестве root, , когда они захотят сделать это .

Системные настройки, отображающие учетные записи пользователей, включая учетную запись администратора.
Системные настройки> Учетные записи пользователей. «Eliah Kagan» является администратором, поэтому он может делать вещи как root, но он не root

Я администратор моей системы Ubuntu. Когда я запускаю программы, обычно они запускаются как ek («Eliah Kagan» - это полное имя, соответствующее ek имя пользователя.)

Когда я запускаю AbiWord или LibreOffice, он работает как ek. Когда я запускаю Firefox, Chromium, Empathy или Pidgin, он работает как ek. Программы, которые запускаются для обеспечения интерфейса рабочего стола, выполняются как ek.

Однако я администратор, поэтому, если мне нужно выполнить административную задачу, я могу это сделать.

Sudo

В командной строке я обычно использовал sudo , чтобы запустить команду как root:

sudo command...

Это предложит мне пароль my . (Не root 'пароль, root не имеет одного.)

  • Поскольку я являюсь администратором, я могу выполнять действия как root. В конфигурации по умолчанию я должен ввести свой пароль для этого.
  • Пользователи, которые не являются администраторами, не могут выполнять действия как root, даже введя свой пароль. sudo, если пользователь, выполняющий их, не является администратором.

Поскольку администраторы являются совершенно обычными пользователями кроме для возможности выполнять действия как root, выполнение команды требуя, чтобы привилегии root по-прежнему не выполнялись, кроме случаев, когда команда запускается как root

Снимок экрана, иллюстрирующий необходимость в sudo: администратор может успешно запускать определенные команды, делая это как <code> root </code & gt ;, что обычно делается путем добавленияsudo (и пробел) в команду.
Снимок экрана, иллюстрирующий необходимость использования sudo для выполняйте административные задачи. (На основе «Сэндвич» Randall Munroe .

sudo, Графически

Графические программы могут выполняться как root через графические интерфейсы для sudo , например gksu /gksudo и kdesudo . Например, чтобы запустить GParted как root, я мог бы запустить gksudo gparted. Затем мне будет предложено графически ввести пароль.

gksudo graphical password prompt

Поскольку мне предлагается графически, не обязательно быть терминалом. Это один из способов запуска административных инструментов как root.

Polkit

Polkit (некогда известный как PolicyKit) это еще один способ для администраторов делать что-то вроде root. Программа обращается к службе, которая выполняет действие. Иногда действие запускает целую программу; иногда действие более ограничено.

В наши дни многие утилиты графического администрирования системы настроены на использование polkit по умолчанию, вместо использования sudo.

Одним из примеров такой утилиты является Центр программного обеспечения. В полной мере пользуется polkit, требуя от пользователя вводить свой пароль только , когда они хотят сделать что-то , для которого требуется root. (Это возможно при использовании sudo), но это сложнее и уродливее.)

В Центре программного обеспечения я могу найти и прочитать о приложении; тогда меня попросят ввести пароль, когда я хочу его установить.

Аутентификация через polkit для установки приложения в программном центре Ubuntu.

Как отличается polkit

Любая графическая программа может быть запущена как root с помощью gksudo и другие графические символы sudo. (Программа не может работать очень хорошо, в зависимости от того, предназначена ли она для использования в качестве root. Но команда запуска программы будет выполняться как root.)

В то время как polkit теперь более распространен, чем sudo интерфейсы GUI как способ, которым приложения Ubuntu выполняют действия как root за кулисами, polki будет запускать графическое приложение только как root , если есть файл конфигурации, разрешающий его и указывающий, какие действия могут быть выполнены .

Polkit, неграфически

pkexec - это команда, используемая для запуска программы с помощью polkit.

Как sudo, pkexec может запускать неграфические команды. (И он не требует файла конфигурации, определяющего возможности команды - он просто запускает команду как root.)

pkexec command...

pkexec запрашивает пароль графически, даже если онзапускается из терминала (это один из способов, по которому его поведение более похоже на gksudo, чем на запуск прямого sudo)

(Если нет GUI - например, если вы вошли в систему из виртуальная консоль или текстовое сеанс SSH или графический интерфейс не работает правильно - тогда pkexec будет грамотно деградирует и запрашивает пароль в командной строке.)

Выполнение команды в терминале с помощью pkexec.

После успешной проверки подлинности команда запускается в терминале.

Команда успешно запускается как <code> root </code> после успешной проверки polkit.

Выполнение команд в качестве других пользователей Кроме root

root является особенным, потому что он получает все, что можно сделать. Но это учетная запись пользователя, как любая учетная запись, и способы запуска команд как root с помощью sudo (напрямую или с графическим интерфейсом), или polkit может быть немного изменен для запуска команды как любой другой пользователь:

sudo -u username command...
gksudo -u username command...
pkexec --user username command...

Что? Вы сначала набираете sudo? Как эта безопасность?!

Выполнение команд с помощью sudo похоже на вызов papal infalliblity .

Когда вы запустите команду с помощью sudo [invoke papal infallibility] , Ubuntu [Католические люди] прилагает все усилия, чтобы убедиться, что вы действительно вы [действительно, Папа].

Да, я знаю, что папская непогрешимость (даже когда нормативная) является декларативной; параллель не идеальна.

Попытка сделать что-то как root с помощью sudo (или polkit) - большое дело - Ubuntu не просто позволяет этому слайду, как и все остальные раз, когда вы запускаете программу.

Вам будет предложено ввести пароль. (Затем, что вы сделали это, запомнится на короткое время, поэтому вам не нужно постоянно вводить пароль при администрировании вашей системы.)

Помимо напоминания о том, что вы осторожны , это защищает от двух сценариев:

  • Кто-то использует ваш компьютер (или мобильное устройство), возможно, под видом проверки их электронной почты или какой-либо другой безобидной цели. Здесь им по-прежнему можно навредить - например, они могут изменять или удалять ваши документы. Однако они не могут управлять системой, так как они не могут ввести ваш пароль.
  • Программы, которые не должны администрировать систему, не могут сделать это, если вы не введете свой пароль. Например, если ваш веб-браузер скомпрометирован ошибкой безопасности и запускает вредоносный код, он по-прежнему не может выполнять административные задачи. Он не может создавать и удалять пользователей, изменять программы, установленные как root (который включает все, что установлено диспетчером пакетов, например LibreOffice), или изменить система на глубоком уровне.

Я слышал о su. Что это? Могу ли я использовать это?

su аутентифицируется как другой пользователь и запускает команду (или запускает интерактивную оболочку). Можно ограничить кому разрешено использовать su, но su аутентифицируется с помощью пароля target учетной записи, а не пароля пользователяработает.

Например, su username -c 'command...' работает command... как имя пользователя , точно так же, как sudo -u username command... .

Но когда вы запускаете команду username с помощью sudo, вы введете свой пароль . Когда вы выполняете команду как username с помощью su, вы введете username пароль .

Так как su выполняет аутентификацию для целевого пользователя , с помощью su вы можете запускать команды только как пользователи , учетные записи которых включены .

Аккаунт root (например, www-data и nobody) по умолчанию отключен. Нет пароля, который будет работать для входа в систему как root. Таким образом, вы не можете использовать su для запуска команд как root.

Вы можете использовать su для запуска команд в качестве другого пользователя, который может войти в систему (который обычно включает все учетные записи пользователей в вашей системе, которые представляют людей).

При входе в систему в качестве гостя вы не можете использовать su вообще.

Объединение su и sudo

Кто-то, кто не является администратором, может даже использовать su для запуска sudo в качестве администратора. (Это нормально, так как им нужен пароль администратора для запуска команд в качестве администратора.) То есть ограниченный пользователь может использовать su для запуска sudo для запуска команды как root. Это может выглядеть так:

su username -c 'sudo command...'

(Выполнение графических программ таким образом требует особого внимания .)

Не мог бы su быть более безопасным способом запускать команды как root?

Возможно, нет.

Что делать, если пользователю не разрешается действовать как root?

Сделайте их ограниченным пользователем, а не администратором.

Что делать, если программа, выполняемая как администратор, пытается выполнить sudo до root?

Если вы не переконфигурировали sudo, чтобы преуспеть без пароля, он не сработает.

Невозможно выполнить программу, которая не должна выполняться как root контрейлерные передачи по недавнему sudo, поэтому пароль не требуется?

Это вряд ли удастся. В наши дни большинство операционных систем (включая Ubuntu) имеют sudo по умолчанию, поэтому его метки времени применяются только в определенном контексте.

Например, если я запустил sudo ... на одной вкладке терминала и успешно прошел проверку подлинности, sudo на другой вкладке (или запущенной несвязанной программой GUI, или я запускаю ее с виртуальной консоли или сеанса SSH) все равно будет запрашивать пароль. Даже если он запускается сразу же после этого.

Не работает ли у пользователя X доступ к паролю пользователя X?

Нет.

Если вредоносная программа может работать как администратор, не может ли она «прослушивать» то, что набирается, когда администратор аутентифицируется с помощью sudo или polkit?

Потенциально, да. Но тогда он мог бы «прослушать» пароль, введенный для su.

Если я скажу кому-то свой пароль -

Не сообщайте людям свой пароль.

Что делать, если кто-то должен знать мой пароль, чтобы что-то делать от моего имени, но я не хочу позволять им администрировать систему?

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

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

Итак, самая безопасная вещь - запретить как sudo, так и su и заставьте людей войти в систему как root, вручную?

Нет, потому что есть серьезные недостатки, связанные с возможностью входа в систему как root вообще. По возможности наименьшее количество возможных действий следует выполнять как root. Даже большинство действий, касающихся непосредственно администрирования системы (например, просмотр настроек пользователей и чтение журналов), обычно не требуют root привилегии.

Кроме того, как потенциально вредоносная программа может наблюдать за тем, что кто-то вводит при запуске sudo или ---- +: = 145 =: + ---- или создать поддельный su / ---- +: = 147 =: + ----, потенциально , вредоносная программа также может создать поддельный экран входа.

Что делает пользователя администратором?

Групповое членство.

В Ubuntu 12.04 и более поздних версиях администраторы являются членами группы под названием sudo

В Ubuntu 11.10 и более ранних версиях, администраторы являются членами группы под названием su

Когда система Ubuntu до 12.04 обновляется до 12.04 или новее, группа sudo сохраняется для обратной совместимости (и продолжает предоставлять административная власть для пользователей в нем), но также используется группа admin.

Ограниченные учетные записи пользователей

Можно ли использовать ограниченную учетную запись пользователя вместо учетной записи администратора?

Если вам нравится, конечно. Создайте ограниченную учетную запись пользователя в Системные настройки > Учетные записи пользователей и войдите в систему как пользователь.

Могу ли я сделать свою учетную запись администратора ограниченной учетной записью пользователя?

Да, просто удалите его из admin и sudo (см. выше).

Но вы должны убедиться, что есть хотя бы одна другая учетная запись администратора, поэтому вы можете управлять своей системой. Если этого не происходит, вам придется загрузиться в режим восстановления или жить CD и сделать некоторых пользователей администратор снова . (Этот похож на сброс потерянного пароля администратора .)

Графические инструменты для администрирования пользователей и групп будут обычно мешать вам создавать систему без администраторов или, по крайней мере, предупреждать вас. Инструменты командной строки обычно не будут (доверяя, что вы знаете, что делаете).

ответил Eliah Kagan 20 Jam1000000amSun, 20 Jan 2013 11:24:49 +040013 2013, 11:24:49
4

Нет такого понятия, как глупый вопрос;)

Надеюсь, это немного прояснит ситуацию:

В Ubuntu могут быть созданы два разных типа учетных записей пользователей: учетные записи standard и учетные записи administrator . Разница между двумя: стандартная учетная запись не позволяет вносить какие-либо важные изменения в вашу систему, получая корневой доступ, тогда как учетная запись администратора может использовать свой пароль для внесения изменений в качестве пользователя root. Пользователь Root сам по себе является одним из многих пользователей, созданных системой, и которые вы обычно не видите или не видите, и вы не можете войти в него (по умолчанию, в любом случае). Если вы вошли в учетную запись типа администратора, вы можете стать этим корневым пользователем с помощью команды sudo в терминале, и вы можете введите свой пароль для установки программного обеспечения, внесения изменений в систему и т. д. Если вы вошли в систему как стандартный пользователь, вы не можете сделать что-либо из этого.

ответил Richard 20 Jam1000000amSun, 20 Jan 2013 07:55:13 +040013 2013, 07:55:13
3

Во всех системах Linux Чтобы сделать какие-либо изменения в системе, нам необходимо пройти аутентификацию как пользователь root, а также применить все изменения, которые должны быть пользователем root.

Обычные пользователи не могут применять систему изменений в целом. Это преимущество Linux в сравнении с окнами.

Если какая-либо атака будет выполнена только в этой области в системе Linux /Unix, потому что для атаки или для изменения остальных областей необходимы корневые разрешения, но в Windows, если одно место подверглось нападению, означает, что вся система будет затронута.

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

Если вы хотите перейти на пользователя root, sudo может вам помочь.

sudo -i 

Если вы хотите запустить приложение как пользователь root, вы можете sudo.

sudo <app_name>

Всегда лучше запускать систему как пользователь без полномочий root.

ответил Ten-Coin 20 Jam1000000amSun, 20 Jan 2013 07:44:52 +040013 2013, 07:44:52
3

Учетная запись, созданная во время установки , является учетной записью администратора .

В Ubuntu корневая учетная запись не имеет пароля и, как следствие, вы не можете регистрироваться как root пользователь. Есть способы обойти это, но это значение по умолчанию.

Учетная запись администратора в Ubuntu означает, что пользователь добавляется в группу sudo, что делает учетную запись подходящей для временного использования превалирования команду sudo. PolicyKit может запрашивать эскалацию привилегий, запрашивая пароль «Администратор». (Вам нужно выбрать пользователя-администратора и указать пароль этой учетной записи.)

Чтобы подтвердить, что они верны:

  • Откройте терминал и попытайтесь обновить индекс пакета программного обеспечения. apt-get update - это команда, используемая для этого, и это требует для запуска с правами root. Он работает только тогда, когда вы либо входите в систему как пользователь root, либо выполняете его как root, используя эскалацию привилегий. Администратор может запустить sudo apt-get update путем аутентификации на sudo, который позволяет командам запускаться как любой пользователь. Стандартный пользователь не будет допущен к этому.

  • Откройте учетные записи пользователя из системных настроек и попытайтесь добавить нового пользователя. Механизм защиты, используемый там, - PolicyKit. Администраторам будет разрешена аутентификация и эскалация привилегий, но стандартные пользователи будут заблокированы. Для этого требуется пароль администратора.

Вот как вы проверяете, является ли ваша учетная запись администратором или нет:

  • Откройте учетные записи пользователя из системных настроек.
  • Выберите свою учетную запись в левом столбце.
  • Вы должны увидеть Administrator под именем учетной записи в обеих панелях для учетных записей администратора и Standard для обычных пользователей.
ответил Mahesh 20 Jam1000000amSun, 20 Jan 2013 11:39:49 +040013 2013, 11:39:49
2

Нет.

пользователь, с которым вы входите в Ubuntu, не является пользователем admin (пользователь admin в терминологии Linux называется root)

ответил tomodachi 20 Jam1000000amSun, 20 Jan 2013 06:01:25 +040013 2013, 06:01:25

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132