Это, кажется, проблема куриного яйца. Наиболее распространенное использование задачи sudo
устанавливает и удаляет программное обеспечение.
sudo apt-get purge <appname>
Но sudo
самостоятельно может быть удален.
sudo apt-get purge sudo # Do not run this command on production computers!
Это - то, куда забава происходит
ubuntu@ubuntu:~$ sudo
bash: /usr/bin/sudo: No such file or directory
Хотя очевидно, что никакой человек в его правильном уме не произведет чистку sudo
(кроме меня), кого-то можно дурачить для выполнения этой команды (не непосредственно, в ее шестнадцатеричном режиме, или независимо от того, что это называют), или человек мог SSH в замаскированном как технический гуру и делает путаницу.
Так существует ли способ переустановить sudo?
Я могу устанавливать приложения, используя:
pkexec apt-get install <appname>
Из man pkexec
:
pkexec позволяет авторизованному пользователю выполнять ПРОГРАММУ от имени другого пользователя. Если имя пользователя не указано, то программа будет выполняться как суперпользователь с правами администратора, root.
Итак, я полагаю, что pkexec apt-get install sudo
также должно работать.
Изменить : теперь я могу подтвердить: да , sudo
можно установить с помощью pkexec apt-get install sudo
:
Вы всегда можете загрузиться в Recovery Mode , перейдите в корневую оболочку и установите ее без sudo.
Да, переустановить пакет sudo
можно с помощью метода chroot .
Первая загрузка с живого диска Ubuntu.
Смонтируйте ранее установленный раздел Ubuntu в любой каталог, который вы хотите. В моем случае , я смонтировал его в / media / ubuntu
.
sudo mkdir / media / ubuntu
sudo mount / dev / sdaX / media / ubuntu # / dev / sdaX - ранее установленный раздел Ubuntu.
По умолчанию вы не можете подключиться к Интернету после перехода в раздел. Поэтому выполните приведенную ниже команду, чтобы она заработала.
для d в dev sys run proc; сделать sudo mount --bind / $ d / media / ubuntu / $ d; сделанный
Спасибо @Oli за этот замечательный фрагмент кода.
Теперь chroot в этот смонтированный каталог,
$ sudo chroot / media / ubuntu
# apt-get update
Установите пакет sudo
, запустив,
# apt-get install sudo
Теперь выйдите из chrooted-окружения.
exit
Наконец загрузите свою ОС Ubuntu. Теперь проверьте свою команду sudo
, она наверняка будет работать.
Загрузиться с дополнительным параметром init = / bin / sh
в командной строке ядра. Это переведет вас прямо в корневую оболочку, откуда вы можете просто запустить apt-get install sudo
и затем перезагрузиться. Вам может потребоваться запустить /etc/init.d/networking start
, чтобы сначала получить работающее сетевое соединение. Намного проще, чем возиться с компакт-дисками восстановления или живыми дисками, если вы спросите меня.
Если вы уже установили или обновили корневой каталог
пароль учетной записи пользователя с помощью этой команды sudo passwd root
, тогда не беспокойтесь об очистке sudo
. Просто войдите в свою учетную запись root
и затем установите sudo
,
su
apt-get install sudo
sudo (и любые другие привилегии root) применимы только к работающей ОС. Если вы поступили глупо и удалили sudo (или / usr /, если на то пошло) и у вас нет альтернатив, таких как pkexec, вы можете просто загрузиться из чего-то еще, скопировать недостающее программное обеспечение и снова перезапустить.
вся программная безопасность вашей системы.
Эта проблема, похоже, очень специфична для Ubuntu. Как пользователь, не использующий ubuntu, я сначала даже не понял, почему sudo в любом случае может быть особым случаем (многие дистрибутивы не устанавливают его по умолчанию).
Вам вообще не нужно sudo. Это просто ленивый ярлык, который позволяет вам выполнять команду root, не входя в систему как root. Однако, если вам нужно сделать что-то большее, чем одну команду, просто ужасно постоянно добавлять префикс sudo ко всему. Не говоря уже о том, что использование sudo
заставляет пользователей не знать, как работают разрешения и учетная запись root. Гораздо разумнее просто войти в систему как root, выполнить администрирование системы и выйти из системы. Это вы делаете с su
, если вы уже вошли в систему как обычный пользователь. Или вы можете войти в систему напрямую как root.
Конечно, вам нужно установить пароль root
, это разумная конфигурация, в противном случае у вас есть Windows-подобная система, где есть действия, которые никто не может выполнить, и вы действительно заблокированы, если каким-то образом sudo
недоступен (для этого требуется работа / etc /
, установка $ PATH
и другие смонтированные вещи, которые вы не можете иметь, если что-то пойдет не так в начале загрузки).