openwrt修改密码
默认情况下root是没有密码的 需要设置密码后才能开启ssh
修改/etc/shadow文件:
root:$1$wEehtjxj$YBu4quNfVUjzfv8p/PBo5.:0:0:99999:7:::
密码经过加密,密码修改为admin
shadow文件里的字段格式和解释:
{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天数}:{账户不活动天数}:{账号失效天数}:{保留}
如果密码字符串为*, 表示系统用户不能被登入;
为!,表示用户名被禁用;
为空,表示没有密码
可以用 $passwd -d 用户名 清空一个用户的密码。
密码加密算法,其实就是用明文密码和一个叫salt的东西通过函数crypt()完成加密。
密码域密文也是由三部分组成的,即:$id$salt$encrypted。
id为1时,采用md5进行加密;
id为5时,采用SHA256进行加密;
id为6时,采用SHA512进行加密。
在每次改写密码时,都会随机生成一个这样的salt。我们登录时输入的明文密码经过上述的演化后与shadow里的密码域进行字符串比较,以此来判断是否允许用户登录。