我试图更改登录外壳。
这是第一行的/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并且没有安装在系统上。
假定由于任何原因(加密,物理访问等),我都无法在实时CD上引导修改文件。
但是,我确实知道该root帐户的凭据。
我的问题是:是否有任何方法,甚至以编程方式,root无需先启动其登录外壳程序即可启动该帐户的进程?
passwd文件所在的行不应该是/ usr / bin / zsh吗?为什么只输入字符串zsh?
—
slm
@slm这就是OP想要做出的改变……
—
CVn
如果@qdii建议有效(即有效
—
humanandANDpeace
su -c "<commands>")...我们不能然后简单地使用rootsu -c "/bin/bash"用户进入工作场所吗?
@humanityANDpeace:那不行。传递给该命令的命令
—
Mat
-c是通过用户的登录shell运行的。-s仅当现有登录shell有效或调用者为root时,才可以使用其他shell。

su呢?还是gksu?像su -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'