sudo может быть переустановлен, будучи удаленным?

Это, кажется, проблема куриного яйца. Наиболее распространенное использование задачи 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?

63
задан 18 March 2014 в 13:03

7 ответов

Я могу устанавливать приложения, используя:

pkexec apt-get install <appname>

Из man pkexec :

  pkexec позволяет авторизованному пользователю выполнять ПРОГРАММУ от имени другого пользователя.  Если
  имя пользователя не указано, то программа будет выполняться как
  суперпользователь с правами администратора, root.
 

Итак, я полагаю, что pkexec apt-get install sudo также должно работать.


Изменить : теперь я могу подтвердить: да , sudo можно установить с помощью pkexec apt-get install sudo :

reinstall sudo

( щелкните, чтобы увеличить )

58
ответ дан 16 November 2019 в 10:11

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

29
ответ дан 16 November 2019 в 10:11

Да, переустановить пакет 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 , она наверняка будет работать.

22
ответ дан 16 November 2019 в 10:11

Загрузиться с дополнительным параметром init = / bin / sh в командной строке ядра. Это переведет вас прямо в корневую оболочку, откуда вы можете просто запустить apt-get install sudo и затем перезагрузиться. Вам может потребоваться запустить /etc/init.d/networking start , чтобы сначала получить работающее сетевое соединение. Намного проще, чем возиться с компакт-дисками восстановления или живыми дисками, если вы спросите меня.

4
ответ дан 16 November 2019 в 10:11

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

su
apt-get install sudo

enter image description here

Щелкните здесь, чтобы увеличить

1
ответ дан 16 November 2019 в 10:11

sudo (и любые другие привилегии root) применимы только к работающей ОС. Если вы поступили глупо и удалили sudo (или / usr /, если на то пошло) и у вас нет альтернатив, таких как pkexec, вы можете просто загрузиться из чего-то еще, скопировать недостающее программное обеспечение и снова перезапустить.

вся программная безопасность вашей системы.

-1
ответ дан 16 November 2019 в 10:11

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

Вам вообще не нужно sudo. Это просто ленивый ярлык, который позволяет вам выполнять команду root, не входя в систему как root. Однако, если вам нужно сделать что-то большее, чем одну команду, просто ужасно постоянно добавлять префикс sudo ко всему. Не говоря уже о том, что использование sudo заставляет пользователей не знать, как работают разрешения и учетная запись root. Гораздо разумнее просто войти в систему как root, выполнить администрирование системы и выйти из системы. Это вы делаете с su , если вы уже вошли в систему как обычный пользователь. Или вы можете войти в систему напрямую как root.

Конечно, вам нужно установить пароль root , это разумная конфигурация, в противном случае у вас есть Windows-подобная система, где есть действия, которые никто не может выполнить, и вы действительно заблокированы, если каким-то образом sudo недоступен (для этого требуется работа / etc / , установка $ PATH и другие смонтированные вещи, которые вы не можете иметь, если что-то пойдет не так в начале загрузки).

-2
ответ дан 16 November 2019 в 10:11

Другие вопросы по тегам:

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