openwrt 15.05版本修改之处:/package/base-files/files/bin/config_generate
[ -n "$vlan" ] && ifname=${ifname}.${vlan}
uci -q batch <<EOF
delete network.$1
set network.$1='interface'
set network.$1.ifname='$ifname'
set network.$1.force_link=1
set network.$1.proto='none'
set network.$1.macaddr='$macaddr'
EOF
case $1 in
lan) uci -q batch <<EOF
set network.$1.type='bridge'
set network.$1.proto='static'
set network.$1.ipaddr='192.168.8.1'
set network.$1.netmask='255.255.255.0'
set network.$1.ip6assign='60'
EOF
shell脚本中的点(.)有文件包含的意思。
例如:. /lib/function.c
就是在该shell脚本中包含/lib/function.c文件。
mtd -r erase rootfs_data
1. 修改dropbear配置文件
openwrt下的路径:
package/network/services/dropbear/files/dropbear.config
openwrt@root files]$ vim dropbear.config
config dropbear
option PasswordAuth 'on'
option RootPasswordAuth 'on'
option Port '22'
option Interface 'lan'
option BannerFile '/etc/banner'
2. 修改root密码
由于openwrt默认是没有密码的,所以ssh没法连接,只能连接telnet,我们只要做到让openwrt开启时就配置号密码就可以了!
让openwrt开机就有密码有两种方法:
1)修改原有的shadow文件
/etc/shadow中格式如下
root:$1$acQMceF9$1SaCpG2qiKKA3eGolU4Fp0:13299:0:99999:7:::
彩色段为加密后的密码,$1$表示采用的是md5加密,绿色段是简单的字符串,蓝色段为加密后的密码只要删除acQMceF9$1SaCpG2qiKKA3eGolU4Fp0它后,就删除了密码。
第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd是相同的,这样就把passwd和shadow中用的用户记录联系在一起;这个字段是非空的;
第二字段:密码(已被加密),这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数);
第四字段:两次修改口令间隔最少的天数;如果这个字段的值为空,账号永久可用;
第五字段:两次修改口令间隔最多的天数;如果这个字段的值为空,账号永久可用;
第六字段:提前多少天警告用户口令将过期;如果这个字段为空,账号永久可用;
第七字段:在口令过期之后多少天禁用此用户;如果这个字段的值为空,账号永久可用;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,账号永久可用;
第九字段:保留字段,目前为空,以备将来发展之用;
2)echo "密码" | password root --stdin,此方法一般在Linux里面支持,但是在busybox中的passwd不支持。
下文都以生成明文"123456"对应的加密密码为例。
要生成md5算法的密码,使用openssl即可。
openssl passwd -1 '123456'
openssl passwd -1 -salt 'abcdefg' '123456'
生成密码后,直接将其拷贝或替换到shadow文件的第二列即可。例如:替换root用户的密码
field=$(awk -F ':' '/^root/{print $2}' /etc/shadow)
password=$(openssl passwd -1 123456)
sed -i '/^root/s%'$field'%'$password'%' /etc/shadow
至此,本期openwrt随记结束,有误之处还望指正。
联系客服