chsh以后进不去系统的解决之道暨FreeBSD

时间:2022-02-11 13:00:47
 一:系统启动时,选择“4”,进入“单用户”模式,输入“boot -s”进入单用户的提示符“#”,依次键入如下命令: [www.Syue.com] 内容来自"岁月联盟"  fsck -p
  mount -u /
  mount -a -t ufs
  swapon -a
  chsh -s /bin/csh 内容来自"岁月联盟"
"岁月联盟"  二:这个方法其实和方法一相似,进入单用户模式以后,把/etc/passwd和/etc/master.passwd里root的shell都改成/bin/csh,然后执行: 来源"岁月联盟" 信息来自"岁月联盟"  fsck -p
  mount -u /
  mount -a -t ufs
  swapon -a
  ee /etc/passwd
  ee /etc/master.passwd
  pwd_mkdb /etc/master.passwd [Syue.com] "岁月联盟"  这是因为login的时候读取的是/etc/pwd.db和/etc/spwd.db,所以在你更改了/etc/passwd和/etc/master.passwd之后还需要重新生成这两个文件。 www.Syue.com www.Syue.com  三:su -m成为root,这样tcsh就成为你作为root时候的shell了,然后chsh即可。
man su可以看到: 信息来源"岁月联盟" [信息来源"岁月联盟"]  -m      Leave the environment unmodified.  The invoked shell is your
             login shell, and no directory changes are made.  As a security
             precaution, if the target user's shell is a non-standard shell
             (as defined by getusershell(3)) and the caller's real uid is non-
             zero, su will fail. Www.Syue.Com