我可以在不启动 root 登录 shell 的情况下以 root 身份启动进程吗?

我可以在不启动 root 登录 shell 的情况下以 root 身份启动进程吗?

我尝试更改登录外壳。

第一行如下/etc/passwd(在 Debian Wheezy 安装上):

rootx:0:0:root:/root:/:zsh

当我尝试登录时root

Cannot execute zsh: No such file or directory

我知道zsh可用:

$ which zsh
/usr/bin/zsh

zsh好吧,用完整路径替换似乎是合乎逻辑的。但我该怎么办呢?

我的系统上还有另一个用户 ( user),但它没有 root 权限,也sudo没有安装在系统上。

假设由于某种原因(加密、物理访问……)我无法在 Live CD 上启动来修改文件。

不过,我确实知道该帐户的凭据root

root我的问题是:有没有什么方法,即使是以编程方式,也可以在不先启动其登录 shell 的情况下启动该帐户的进程?

答案1

有su权限

您可以使用以下命令更改任何用户的 shell。

su -c "/usr/bin/chsh -s /bin/bash root"

如果您有物理访问权限

在 Grub 启动期间,只要您具有控制台访问权限并且没有密码阻止您访问 Grub 菜单,您就可以进入任何系统。

在系统首次启动期间,当 Grub 菜单出现时,如果您进入菜单并编辑(按e键)内核行,您可以添加以下内容之一以使内核以单用户模式启动。

  • 单身的
  • 初始化=/bin/sh
  • 1

该行看起来像这样:

 kernel /vmlinuz-2.6.15-27-386 root=/dev/mapper/Ubuntu-root ro init=/bin/bash

在 Grub 中,它应该类似于以下内容:

       grub 的 ss

完成更改后,启动内核(按 键b)。

这将使您可以通过 shell 临时访问系统,您可以在其中使用 vi/vim 对/etc/passwd文件进行所需的任何更改。reboot完成后只需输入即可。

相关内容