Можно ли переустановить после удаления?

57

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

sudo apt-get purge <appname>

Но сам sudo можно удалить.

sudo apt-get purge sudo # Do not run this command on production computers!

Здесь весело

[email protected]:~$ sudo
bash: /usr/bin/sudo: No such file or directory

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

Итак, есть способ переустановки sudo?

    
задан Registered User 15.03.2014 в 10:24
источник

7 ответов

51

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

pkexec apt-get install <appname>

От man pkexec :

  pkexec allows an authorized user to execute PROGRAM as another user. If
  username is not specified, then the program will be executed as the
  administrative super user, root.

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

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

( нажмите, чтобы увеличить )

    
ответ дан Radu Rădeanu 15.03.2014 в 10:38
источник
27

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

    
ответ дан Vojtech Trefny 15.03.2014 в 10:37
22

Да, переустановка пакета sudo возможна с помощью метода chroot .

  • Сначала загрузитесь с живого диска Ubuntu.

  • Установите ранее установленный раздел Ubuntu в любой каталог, который вы хотите. В моем случае я смонтировал его в /media/ubuntu .

    sudo mkdir /media/ubuntu
    sudo mount /dev/sdaX /media/ubuntu   # /dev/sdaX - previously installed Ubuntu partition.
    
  • По умолчанию вы не смогли подключиться к Интернету после chrooted в раздел. Для этого выполните команду ниже.

    for d in dev sys run proc; do sudo mount --bind /$d /media/ubuntu/$d ; done
    

Благодаря @Oli для этого замечательного фрагмента кода.

  • Теперь chroot в этом смонтированном каталоге,

    $ sudo chroot /media/ubuntu
    # apt-get update
    
  • Установите пакет sudo , запустив

    # apt-get install sudo
    
  • Теперь выйдите из chrooted среды.

    exit
    
  • Наконец, загрузите свою Ubuntu OS.Now проверьте свою команду sudo , она, безусловно, будет работать.

ответ дан Avinash Raj 15.03.2014 в 10:47
4

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

    
ответ дан Jules 17.03.2014 в 07:46
1

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

su
apt-get install sudo

Нажмите, чтобы увеличить

    
ответ дан Avinash Raj 17.03.2014 в 06:10
-1

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

Физический доступ сводит на нет все и вся безопасность программного обеспечения, которую может иметь ваша система.

    
ответ дан paul 15.03.2014 в 14:33
-2

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

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

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

    
ответ дан orion 17.03.2014 в 08:51