我刚刚犯了一个小错误:
- 全新安装 FreeBSD 8.2
- 以 root 身份登录
- 从 ports 安装 bash
- 创建用户,将 bash 设置为 shell
vipw
(编辑密码文件)- 将 root 的 shell 从
/bin/csh
改为/bin/bash
- 登出
- 以 root 身份登录
- 错误的!!
正如您可能猜到的那样,bash shell 没有放在 /bin 中 :( 非常愚蠢的错误!
现在我无法以 root 身份登录。我可以以 wheel 用户身份登录,但不能vipw
。
尝试了以下方法,但没有成功:
- 重新启动到单个用户,
/rescue/vi /etc/passwd
- 以 wheel 用户身份登录,
su -m
那么我该如何将 root shell 改回来呢/bin/csh
?
我可以重新安装 - 但我宁愿学习一些新东西!
答案1
启动到单用户模式然后:
mount -w /
vipw
将路径更改为/usr/local/bin/bash
exit
答案2
只是个提示... 首次以 root 身份登录后,我会更改 toor 密码。这样,即使数据损坏/磁盘或分区丢失,我也会有一个具有权限的用户和 2 个不同的 shell。
答案3
使用某种类型的实时 CD/DVD。(Gentoo 是一个不错的选择。)只需安装驱动器,然后编辑 /etc/passwd 文件。
答案4
单用户模式的正确命令是:
mount -u -rw /
mount -a -t ufs
然后执行: chsh -s /usr/local/bin/bash root