删除后可以重新安装sudo吗?
这似乎是一个鸡蛋问题。 使用sudo
最常见的任务是安装和删除软件。
sudo apt-get purge
但是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
(除了我)之外, 有人可能会被愚弄去运行这个命令(不是直接,以hex模式,或者其他任何方式),或者一个人可以伪装成技术SSH大师,做一团糟 。
那么有没有办法重新安装sudo?
我可以用以下方法安装应用
pkexec apt-get install
来自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
应该也能正常工作。
编辑 :现在我可以确认: 是的 ,可以使用pkexec apt-get install sudo
:
( 点击放大 )
您始终可以启动进入恢复模式 ,转到root shell并在没有sudo的情况下安装它。
是的,可以通过chroot方法重新安装sudo
包。
-
首先从Ubuntu live disk启动。
-
将以前安装的Ubuntu分区挂载到您想要的任何目录中。在我的例子中,我将它安装在
/media/ubuntu
。sudo mkdir /media/ubuntu sudo mount /dev/sdaX /media/ubuntu # /dev/sdaX - previously installed Ubuntu partition.
-
在默认情况下,您无法在chrooted进入分区后获得Internet连接。因此,请运行以下命令使其正常工作。
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
命令,它肯定会起作用。
在内核命令行上使用额外参数init=/bin/sh
进行引导。 这将把你直接放到root shell中,你可以从那里简单地运行apt-get install sudo
然后重启。 您可能需要先运行/etc/init.d/networking start
以获得有效的网络连接。 如果你问我的话,比使用恢复CD或实时磁盘更简单。
如果您已通过此命令sudo passwd root
设置或更新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
和其他安装的东西 – 如果在启动早期出现问题,你可能没有。