这似乎是先有鸡还是先有蛋的问题。最常见的任务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?
答案1
我可以使用以下方式安装应用程序:
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
也应该可行。
编辑:现在我可以确认:是的,sudo
可以使用以下方式安装pkexec apt-get install sudo
:
(点击放大)
答案2
您可以随时启动恢复模式,进入 root shell 并在没有 sudo 的情况下安装它。
答案3
是的,sudo
可以通过以下方式重新安装包chroot方法。
首先从 Ubuntu 实时磁盘启动。
将之前安装的 Ubuntu 分区挂载到您想要的任何目录中。就我而言,我将它挂载在 中
/media/ubuntu
。sudo mkdir /media/ubuntu sudo mount /dev/sdaX /media/ubuntu # /dev/sdaX - previously installed Ubuntu partition.
默认情况下,chroot 到分区后您无法获得互联网连接。因此,运行以下命令使其工作。
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 操作系统。现在测试你的
sudo
命令,它肯定会起作用。
答案4
如果您已经root
通过此命令设置或更新了用户帐户密码sudo passwd root
,那么您不必担心清除sudo
。只需登录您的root
帐户,然后安装sudo
,
su
apt-get install sudo