На этот вопрос уже есть ответ здесь:
Как установить sudo
пакет?
$ apt-get install sudo
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?
Если Вы на самом деле удалили sudo
команда, можно переустановить пакет, который обеспечивает ее путем выполнения:
pkexec apt-get update
pkexec apt-get --reinstall install sudo
Это работает, потому что большинство систем Ubuntu имеет два отдельных пути, которые позволяют администраторам выполнить действия как корень, sudo и Polkit. Когда sudo повреждается, Polkit обычно все еще неповрежден.
Вы должны быть зарегистрированы как администратор, чтобы сделать это, конечно. Если Вы используете учетную запись, кому разрешили использовать sudo
(назад, когда sudo
существовавший в системе), который должен хорошо работать.
В минимальной системе или системе сервера Ubuntu, Polkit может быть недоступным, и с некоторыми конфигурациями Вы не сможете работать pkexec
управляйте по сессии SSH.
Вы указали на это pkexec
, в то время как не удаленный как sudo
, также повреждается. А именно, в Вашей системе это имеет неправильное владение или полномочия. Это, как предполагается, корень setuid, но это не, и поэтому это не может использоваться.
Было бы полезно знать как /usr/bin/sudo
был удален, и как /usr/bin/pkexec
полномочия (или владение) были изменены. Они равняются двум, на вид отдельным изменениям повреждения в Вашей системе. Если рекурсивное (-R
) chown
или chmod
был выполнен на /
, /usr
, или /usr/bin
, это объяснило бы как pkexec
полномочия были изменены, и соответствующая фиксация сделает больше, чем просто возврат их для того одного исполняемого файла.
После этих слов если эти только две вещи неправильно с Вашей системой - это sudo
отсутствует и pkexec
имеет неправильные полномочия или владение, это все еще легко фиксируется, хотя необходимо будет перезагрузить в режим восстановления или chroot в от продуктивной среды. Я предлагаю режим восстановления.
/
чтение-запись путем выполнения: mount -o remount,rw /
pkexec
имеет корректное владение: chown root:root /usr/bin/pkexec
pkexec
полномочия: chmod 4755 /usr/bin/pkexec
exit
и следуйте за подсказками), или перезагрузка с reboot
.sudo
пакет путем выполнения apt-get
с pkexec
.Это имеет преимущество работы, доступно ли какое-либо Интернет-соединение в режиме восстановления, не включая загрузку .deb
файлы и вручную установка их. С --reinstall
, apt-get
заменит все файлы пакета для sudo
, который может решить дополнительные проблемы. Плюс, это также фиксирует Ваш поврежденный pkexec
.
Однако это не единственный подход. В частности, метод, данный в ответе San Lin Naing, должен работать, также. Основное различие - то, что, в методе, данном здесь, никакие операции управления пакетом не выполняются в chroot, который только используется для восстановления pkexec
таким образом, это может затем использоваться для управления пакетами при нормальной начальной загрузке.
да я acidentlly удалил sudo файл. вывод ls-l/usr/bin/sudo, не может получить доступ к '/usr/bin/sudo': Никакой такой файл или каталог
Просто мысль:
у Вас все еще есть медиа (DVD / карта с интерфейсом USB), от которого Вы установили Ubuntu на своей системе?
/usr/bin/sudo
от живой системы до смонтированного раздела. Возможно, Вы могли загрузить свою систему к режиму восстановления через личинку. Оттуда Вы могли попытаться проверить системную интеграцию через dpkg, который, возможно, позволяет Вам решить свою проблему. Или, после этого, так как Ваш раздел был смонтирован с полномочиями чтения-записи, Вы могли установить sudo, не используя команду sudo при помощи записи главного меню. Необходимо обновить через Кв. - получают и возможно пробуют использование apt-get install -f
и dpkg --configure -a
сначала.
Можно создать sudo
из источника
mkdir sudo-src
cd sudo-src
apt-get source sudo
cd sudo-x.y.z
./configure --prefix=$HOME
make
make install
Вам нужно root
разрешение установить любое программное обеспечение. Но, Вы удалили sudo
пакет.
Если у Вас есть доступ как a root
, Вы можете устанавливать sudo
снова.
Ссылка на этот ответ.
Попытайтесь запуститься с bash mode
с root
пользователь.
Shift
ключ или Esc
ключ.Advanced options for Ubuntu
.Ubuntu, with Linux x.x.x-xx-generic (recovery mode)
.root Drop to root shell prompt
mount -o rw,remount /
управляйте для получения доступа для записи чтения.apt install sudo
. Последуйте экранные инструкции.Если установка закончилась, Она сделана!
В противном случае этому, возможно, понадобится сетевое соединение.
Позволяет перезагрузке, Ваша система к нормальной начальной загрузке и загрузке потребовала файлов. Если так, Ctrl + D
пойдет страница меню снова и выберет resume
. Это перейдет к нормальной начальной загрузке.
Вы, возможно, должны установить sudo офлайн. Это может быть другим исследованием. Здесь можно найти .deb
пакет. Можно загрузить версией ОС. Загрузите свой файл, который является sudo_1.8.19-3_xxxx.deb
. И затем помните свою загрузку file path
.
Перезагрузите свою систему в bash mode (recovery mode)
снова и выполните 1-6 шагов.
И затем dpkg -i *file_path/sudo_1.8.19-3_xxxx.deb
. Это установит sudo
. Законченный! Ctrl + D
и выберите resume
к нормальной начальной загрузке.
Готово!