有几个月没有去碰freebsd的东西了,今天想趁空闲给某台机器做个升级。用portupgrade升级时出了些问题,结果bash被卸载了。当我发现这个问题的时候网络连接正好也中断了……于是root被锁在了屋外
多年前出过类似的错误,没想到这次又是——不知道出于什么原因,这台机器的root默认shell竟然是bash。这样就造成无法su或者直接登录成root。
2种解决办法,一种是如果普通用户可以登录,并且允许su,那么执行"su -m",这样做可以使成为root的时候继续使用当前用户的shell及其他的一系列环境变量。另外一种解决办法是需要能sftp或者ftp方式访问到/bin,将/bin下面的sh或者csh复制到bash对应的目录,直接覆盖即可,让sh或者csh临时"当作"bash以便用户能凑合登录进去。
永远都不要用外带的shell,永远都不要修改root的默认shell……
貌似 su – 是使用 root 的环境变量啥的?
我确实记错了,应该是”su -m” 🙂 多谢提醒
试试看toor? 🙂