Что значит «ты корень?»?

16

Вот что я продолжаю получать:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

Что я делаю неправильно?

Ascendermedia
источник

Ответы:

29

rootэто учетная запись суперпользователя в системе - она ​​(в основном) имеет все привилегии. Многие системы настроены таким образом, что вы можете использовать sudoкоманду перед другой командой для запуска этой команды «как пользователь root», то есть, как если бы вы были пользователем root, с такими же привилегиями.

Обычно для установки системных пакетов вам необходимы права root, что и apt-getделает. Итак, это не работает, в первый раз, потому что у вас нет sudoдоступных; во второй раз, потому sudoчто волшебным образом не появился только потому, что вы запускали его дважды; и третий (и пятый) раз, потому что apt-getaptitude) действительно требуются права root для установки таких пакетов.

Как видно из вашего первого сообщения об ошибке, sudo либо не установлен, либо не указан в вашем пути и, вероятно, не настроен. Вы можете заменить su -cвместо этого и дать пароль root (пароль для rootучетной записи) при появлении запроса.

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

mattdm
источник
Это в основном правильно, хотя я бы сказал, что sudoон не просто запускает команды «как будто вы root», но фактически запускает их как root. Если вы посмотрите на процесс, вы увидите, что он работает от имени пользователя root, а не как ваш идентификатор пользователя. Между прочим, на машинах, которые по умолчанию не разрешают интерактивный вход в систему от имени пользователя root, вы можете просто запустить sudo bashдля получения оболочки root. :)
Рейраб
@reirab Я думаю, что sudo -iэто предпочтительнее, так как он уважает вашу текущую оболочку.
new123456
2
@ new123456 sudo -i будет использовать оболочку по умолчанию для root. sudo -s будет использовать значение $ SHELL для исполняющего пользователя.
bgvaughan
@reirab Вы цитируете ту часть, в которой я объясняю, что означает «root» с точки зрения упрощенного пользователя.
mattdm
5

Вам нужны привилегии root для выполнения системных обновлений через apt-get.

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

111 ---
источник
2
ОП не просто лишен sudoпривилегий, он даже не sudoустановлен.
августа
1
На самом деле, OP должен иметь достаточно времени root для установки и настройки sudo.
Кевин
1
@ n.st возможно неверно, возможно, не в PATH.
o11c
2
@ o11c Я бы сказал, что это те же люди, которые никогда не столкнутся с этой проблемой без sudo, потому что они всегда входят в систему как root.
Кевин
1
@ o11c Хотя возможно, что не кажется вероятным, тем более , что sudoи apt-getоба установлены в /usr/binпо умолчанию (по крайней мере , на Debian).
n.st
5

Что значит «ты корень?»?

Для установки пакетов в масштабе всей системы (что apt-getделает), ему нужны привилегии root, так как вы будете создавать и изменять системные файлы ( rootэто обычное имя для учетной записи администратора * nix).

Сообщение «Являетесь ли вы пользователем root?» Является мягким напоминанием о том, что для запуска «вам нужно быть пользователем root» apt-get install. Это наиболее часто встречающаяся причина возникшей проблемы (показано выше):

/ var / lib / dpkg / lock - открыть (13: разрешение запрещено)

,

Как стать root?

су

Традиционный способ «стать пользователем root» - запустить su(и предоставить пароль пользователя root). су (1) обозначает с Uper ¯u сер или ов ведьмами ¯u сер.

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

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

Судо

sudo (1) - это программа, которая позволяет вам выполнять команду от имени другого пользователя (как описано выше, обычно это делается для пользователя root). Он сконфигурирован /etc/sudoersи обеспечивает более точное управление, например, позволяет запускать только одну программу от имени root для конкретного пользователя (для которого может быть задан запрос на ввод собственного пароля), а также предоставляет средства ведения журналов (например, "." Джон выполнил команду destroy-system как root ").

Существуют и другие варианты запуска с повышенными привилегиями (например, calife ), но они имеют гораздо меньшее использование.

Ваш лог выше показывает, sudoчто не установлен на magic2tower.

Анхель
источник
0

Они уже объясняют, что такое root, когда у вас есть «команда не найдена», вероятно, потому, что вы не установили программу, которую пытаетесь запустить, или у вас нет пути в переменных env.

Попробуйте запустить команду следующим образом:

/usr/bin/sudo apt-get install flashplugin-installer

В некоторых дистрибутивах Linux вы не можете перейти в root, поэтому каждая команда mas запускается с помощью sudo. знак равно

Карлос Андрес Каро Перес
источник
1
да, если у вас есть такое сообщение, bash: sudo: command not foundлучше всего его установить sudo apt-get install sudo, и если оно выдаст ту же ошибку, вы узнаете, что такое рекурсия
pqnet
2
Вы не можете установить sudo используя sudo.
Делать