แฟ้มประวัติ喜鹊和麻雀的故事รูปถ่ายบล็อกรายการเพิ่มเติม เครื่องมือ วิธีใช้

บล็อก


iphone spreadboard不断重启问题解决,修改SSH密码

 

教大家如何修改ssh 登录密码
大家的IPHONE上一定都装了BSD工具和Openssh 吧,一直听说不能用passwd 命令修改root 密码,否则springboard 会不断重启,我今天试了一下,果然是这样。不过我也发现了解决方法,下面听我慢慢讲,呵呵

大家知道IPHONE 的系统是基于BSD 的 Darwin ,说白了核心就是一个BSD ,在BSD下帐号管理一般是下面几个文件
/etc/passwd  用户文件
/etc/master.passwd  密码影子文件
/etc/group  组用户文件

关于BSD 的知识大家可以查看一下下面这个链接
http://www.freebsd.org/doc/zh_CN/books/handbook/users.html

下面开始操作,先用putty 连接到你的iphone 中,注意一定要用SSH远程连接,不能用VT-100,否则当你的spreadboard 不断重启的时候你都不知道该怎么办了,最好是保持iphone 在锁定状态。

修改密码一般是操作 passwd 和 master.passwd 让我们先来看看IPHONE中没有修改密码前的两个文件/etc/passwd 和 /etc/group (去掉了注释部分)


# cat /etc/passwd
nobody:*:-2:-2:Unprivileged User:/:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
mobile:*:501:501:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1:System Services:/var/root:/usr/bin/false
unknown:*:99:99:Unknown User:/var/empty:/usr/bin/false
_securityd:*:64:64::0:0:securityd:/var/empty:/usr/bin/false
# cat /etc/master.passwd
nobody:*:-2:-2::0:0:Unprivileged User:/var/empty:/usr/bin/false
root:/smx7MYTQIi2M:0:0::0:0:System Administrator:/var/root:/bin/sh
mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1::0:0:System Services:/var/root:/usr/bin/false
unknown:*:99:99::0:0:Unknown User:/var/empty:/usr/bin/false
_securityd:*:64:64::0:0:securityd:/var/empty:/usr/bin/false

大家注意master.passwd   ":/smx7MYTQIi2M" 就是我们的初始密码" alipne"
好,修改之前先备份一下两个文件(下面的~ 指的是你的家目录,执行 echo $HOME 就知道你的家目录中哪里了)
# cp /etc/passwd  ~
# cp /etc/master.passwd  ~


然后开始修改,我们执行 passwd 命令(我修改密码为"123456" 注意输入的密码不会显示到屏幕上)
# passwd
Changing password for root.
New password:
Retype new password:
#

好,现在如果你的iphone正好从锁定状态恢复的话,就会发现springboard 开始不断重启了,先别管他,我们继续看终端
先来看看那两个文件被修改成什么样子了

# cat /etc/passwd
nobody:*:-2:-2::0:0:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1::0:0:System Services:/var/root:/usr/bin/false
unknown:*:99:99::0:0:Unknown User:/var/empty:/usr/bin/false
_securityd:*:64:64::0:0:securityd:/var/empty:/usr/bin/false

在这个文件中,不知道大家发现没有,我们修改的root 字段(另外还有_securityd也没有发生变化)没有什么变化,其他的都发生了变化
首先看 nobody:*:-2:-2::0:0  多了后面的“::0:0”  这两位在BSD中的意义是:密码最少要多少时间更换一次,密码多少时间失效,都是0的话表示没有任何限制
还有再看 mobile:/smx7MYTQIi2M: 大家看看上面我们原有的passwd 文件,很明显,这个密码段是放在master.passwd 文件里的,但我们执行了passwd 命令后从master.passwd 中搬了到了passwd 中,而且还加上了后面两位设置密码时间的字段。这样一改就导致了spreadboard 不断重启,可能是系统无法认识这个文件的格式了,具体情况我不是很了解。
下面再看看/etc/master.passwd
# cat /etc/master.passwd
nobody:*:-2:-2::0:0:Unprivileged User:/var/empty:/usr/bin/false
root:5FhGjQ/RzVTDA:0:0::0:0:System Administrator:/var/root:/bin/sh
mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1::0:0:System Services:/var/root:/usr/bin/false
unknown:*:99:99::0:0:Unknown User:/var/empty:/usr/bin/false
_securityd:*:64:64::0:0:securityd:/var/empty:/usr/bin/false

这个文件到没有发生什么,只是改变了root的密码, " 5FhGjQ/RzVTDA" 就是加密后的密码,现在知道了问题主要出在了/etc/passwd 上面,下面说说解决方法,其实很简单,如果你原来有备份的话直接从备份中恢复这个文件马上就OK 了
# cp ~/passwd /etc
如果没有备份,也不要着急,我们就慢慢修改,或者把上面那段未修改前的文件直接替换上去,如果你不会再终端上用vi命令编辑的话,那就用PC工具拷贝这个文件出来修改,再拷贝回去就没问题了,就这么简单!