Що означає "ти корінь?"


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:~$ 

Що я роблю неправильно?

Відповіді:


29

rootє обліковим записом суперпользователя в системі - він (в основному) має всі привілеї. Багато систем налаштовано так, що ви можете використовувати sudoкоманду перед іншою командою для запуску цієї команди "як корінь" - тобто, ніби ви користувач root, з тими ж привілеями.

Зазвичай так буває, що для встановлення системних пакетів вам потрібні кореневі привілеї, що і apt-getробить це. Отже, це не працює, перший раз, тому що у вас немає sudoдоступних; другий раз, тому sudoщо не магічно з'явився лише тому, що ти двічі запускав його; і третій (і п'ятий) раз, оскільки apt-getaptitude) дійсно вимагають кореневих приватних даних для встановлення таких пакетів.

Як видно з першого повідомлення про помилку, sudo або не встановлений, або не на вашому шляху, і, ймовірно, не налаштований. Ви можете su -cзамість цього замінити і вказати кореневий пароль (пароль для rootоблікового запису), коли буде запропоновано.

Якщо ви не знаєте цього пароля, вам потрібно: a) попросити людину, яка робить це завдання для вас, якщо це не ваша система, або b) знайти спосіб відновити його.


Це здебільшого правильно, хоч я зазначу, що sudoкоманди не просто виконують команди "як би ти root", а фактично запускають їх як root. Якщо ви подивитесь на процес, ви побачите, що він працює як root, а не як ваш ідентифікатор користувача. До речі, на машинах, які не встановлені для дозволу інтерактивного входу через root за замовчуванням, ви можете просто запустити, sudo bashщоб отримати кореневу оболонку. :)
reirab

@reirab Я думаю, що sudo -iце є кращим, оскільки він поважає вашу поточну оболонку.
new123456

2
@ new123456 sudo -i використовуватиме оболонку за замовчуванням для root. sudo -s використовуватиме значення $ SHELL для користувача-виконавця.
bgvaughan

@reirab Ви цитуєте частину, де я даю пояснення, що означає "як root" з точки зору спрощеного користувача.
mattdm

5

Вам потрібні привілеї root, щоб виконувати оновлення системи через apt-get.

Ви можете перейти на кореневий рахунок за допомогою su root. Схоже, у вас не встановлена sudoпрограма.


2
ОП не просто бракує sudoпривілеїв, він навіть не sudoвстановлений.
n.st

1
Дійсно, ОП повинен викорінювати достатньо довго, щоб встановити та налаштувати sudo.
Кевін

1
@ n.st, можливо, неправильна, вона може бути не в PATH.
o11c

2
@ o11c Я б стверджував, що це ті самі люди, які ніколи не зіткнуться з цією проблемою без судо, тому що вони завжди увійшли як root.
Кевін

1
@ O11c Хоча можливо, що чи не здається ймовірним, тим більше , що sudoі apt-getобидва встановлені в /usr/binза замовчуванням (по крайней мере , на Debian).
n.st

5

Що означає "ти корінь?"

Для того, щоб встановити пакети в усьому світі (що apt-getце робиться), йому потрібні привілеї root, оскільки ви будете створювати та змінювати системні файли ( rootце звичайна назва для облікового запису адміністратора * nix).

Повідомлення «ти корінь?» - це м'яке нагадування про те, що для запуску вам «потрібно мати корінь» apt-get install. Це найчастіше зустрічається причина виниклої проблеми (показано вище):

/ var / lib / dpkg / lock - відкрито (13: Дозвіл відхилено)

.

Як стати коренем?

су

Традиційний спосіб "стати корінним" - це запустити su(і вказати пароль користувача root). su (1) означає s uper u ser або s witch u ser.

Зауважте, його можна використовувати, щоб стати будь-яким користувачем, тому ви можете запустити, su johnщоб отримати оболонку як Джон. Запуск suбез імені користувача - це скорочення su root.

Щоб це працювало, потрібно ввімкнути кореневий обліковий запис користувача та встановити пароль. Деякі системи налаштовані (навіть за замовчуванням), з відключеним кореневим обліковим записом, щоб уникнути когось, наприклад. вхід зловмисника з обліковим записом адміністратора. У таких випадках вони пропонують інший спосіб запускати адміністративні команди, наприклад, sudo.

судо

sudo (1) - програма, яка дозволяє виконувати команду як інший користувач (як вище, як правило, робиться для root). Він налаштований /etc/sudoersі дозволяє більш точний контроль, наприклад, дозволяє лише запустити одну програму як root, конкретному користувачеві (який може бути налаштований знову вимагати свій власний пароль), а також надає засоби ведення журналу (наприклад, " john виконує систему знищення як root ").

Існують і інші варіанти для runinng із збільшеними привілеями (наприклад, calife ), але вони мають значно менший рівень використання.

Ваш вище журнал вказує sudo, що не встановлено на magic2tower.


0

Вони вже пояснили, що таке root, якщо у вас "команда не знайдена", ймовірно, це тому, що ви не встановили програму, яку намагаєтеся запустити, або у вас немає ENV змінних.

Спробуйте керувати командою так:

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

У деяких Linux-дистрибутивах ви не можете змінити root, тому кожна команда може запускатися з sudo. =)


1
ви впевнені, якщо у вас є повідомлення, як bash: sudo: command not foundнайкраща ідея - це встановити його sudo apt-get install sudo, і якщо воно дасть вам таку саму помилку, ви дізнаєтеся, що таке рекурсія
pqnet

2
Ви не можете встановити sudo за допомогою sudo.
Зробити
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.