我不小心将 /etc/sudoers 移至文档。我需要将其移回 /etc,但我不能,因为我需要 sudo 才能移动文件...
sudo mv Documents/sudoers /etc
sudo: unable to stat /etc/sudoers: No such file or directory
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
答案1
更新 2 - 如果您使用的是树莓派:
关闭电源并将 SD 卡从 Pi 中拔出并将其放入计算机中。
打开文件cmdline.txt
并添加init=/bin/sh
到末尾或对于较新的版本:systemd.unit=emergency.target
。 (更新2)。这将导致机器启动到单用户模式。
将 SD 卡放回 Pi 并启动。
当出现提示时,键入su
以 root 身份登录(无需密码)。
mv sudoers-newname sudoers
关闭机器,然后再次拉出卡,并通过移除钻头或将cmdline.txt
文件恢复原状。init=/bin/sh
对于较新的版本:systemd.unit=emergency.target
.(更新2)
(适用于 sudoers 删除的文本来自此处:http://mapledyne.com/ideas/2015/8/4/reset-lost-admin-password-for-raspberry-pi)
旧答案:
如果您有 root 密码,只需发出“su”,但如果您没有 root 密码,请使用居住cd、dvd 或 pendrive 即可将文件再次移回。
仅使用 su 即可:
#su
Password: Type root password
通过 Live-CD 打开终端并:
$ sudo fdisk -l (to get a list of partitions)
您将看到 Linux 安装的分区,如下所示:
/dev/sda1 * 2048 1936918527 1936916480 923,6G 83 Linux
因此,如果您的情况也是 /dev/sda1,只需
sudo -i
mkdir /mnt/sda1
mount /dev/sda1 /mnt/sda1
mv /mnt/sda1/etc/sudoers-newname /mnt/sda1/etc/sudoers
cd /
umount /mnt/sda1
如果你的Linux安装在多个分区中,只需尝试一个一个地挂载,直到找到正确的分区或包含etc文件的分区。
这就对了。重启。
答案2
启动到单用户模式以将文件移回其所属位置是解决此问题的方法,对于普通 PC 来说也是最简单的方法。
但在本例中,文件系统位于 SD 卡上。您只需要一个读卡器,如果您想修改启动选项,并使用它将 SD 卡连接到运行 Linux 的常规 PC,也需要该读卡器。如果您的 PC 上还没有 Linux,请获取任何 Linux Live CD。然后将文件系统挂载到卡上,并将文件移动到正确的位置。