busybox 登录及其账户密码

Busybox 如何进入系统
两种方式
一种不需要用户名密码验证  A
一种需要用户名密码验证    B
一种输入任何用户名都可以自动登录,且获取root C
一种只需要用户名验证 D
方式A
/etc/inittab 中添加如下
console::askfirst:-/bin/sh
方式D
/etc/inittab 中添加如下
console::respawn:/sbin/getty -L  console 0 vt100

$ cat etc/passwd // 仅有root用户的passwd文件
root:x:0:0:root:/root:/bin/sh
$ cat etc/shadow // 无密码的shadow
root::0::::::

输入 账户root 可以直接登陆,不需要输入密码,配置如下
#
# Login/Password Management Utilities
#
CONFIG_FEATURE_SHADOWPASSWDS=y
CONFIG_USE_BB_PWD_GRP=y
CONFIG_USE_BB_SHADOW=y
CONFIG_USE_BB_CRYPT=y
CONFIG_USE_BB_CRYPT_SHA=y
CONFIG_ADD_SHELL=y
CONFIG_REMOVE_SHELL=y
CONFIG_ADDGROUP=y
CONFIG_FEATURE_ADDUSER_TO_GROUP=y
CONFIG_ADDUSER=y
# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=60000
CONFIG_FIRST_SYSTEM_ID=100
CONFIG_LAST_SYSTEM_ID=999
CONFIG_CHPASSWD=y
CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
CONFIG_CRYPTPW=y
CONFIG_MKPASSWD=y
CONFIG_DELUSER=y
CONFIG_DELGROUP=y
CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
CONFIG_GETTY=y
CONFIG_LOGIN=y
# CONFIG_LOGIN_SESSION_AS_CHILD is not set
CONFIG_LOGIN_SCRIPTS=y
CONFIG_FEATURE_NOLOGIN=y
CONFIG_FEATURE_SECURETTY=y
CONFIG_PASSWD=y
CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
CONFIG_SU=y
CONFIG_FEATURE_SU_SYSLOG=y
CONFIG_FEATURE_SU_CHECKS_SHELLS=y
# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
CONFIG_SULOGIN=y
CONFIG_VLOCK=y
方式B
  • Busybox 设置登录用户名、密码

  • Busybox 没有提供 /etc/passwd /etc/shadow

  • 但是提供了 /sbin/getty 来验证 用户名和密码,验证过程请参考这里

  • 如果我们要用用户名登录的方式 所以需要自己做 这两个文件

我们可以先 用其他方式(ACD) 进入系统

passwd root 会做出
	一个带密码的passwd文件 : 当 shadow 文件不存在或者 shadow存在但是语法不正确
	或者
	一个带密码的shadow文件 : 当 shadow 文件存在且语法正确
-------------------------------------------------------------------------

分享 4条 带密码的passwd文件内容,他们的 用户名都是root,密码都是root
root:Lu3xcmVKWnfxs:0:0:root:/root:/bin/sh
root:y7eQC7vErb646:0:0:root:/root:/bin/sh
root:iufFiKkykDzms:0:0:root:/root:/bin/sh
root:lySCmJ.1txm4M:0:0:root:/root:/bin/sh

分享 1条 带密码的shadow文件内容,他们的 用户名都是root,密码都是root
此时passwd文件为 root:x:0:0:root:/root:/bin/sh
root:P7EOI0G9KsVO6:0::::::

方式C
内核启动前,会将path 设置 为 /sbin:/usr/sbin:/bin:/usr/bin
busybox 中的配置,login的时候随便输入什么都可以进入,但是不能只是回车
$ cat etc/inittab           
console::respawn:/sbin/getty -L console 0 vt100 -l /usr/autologin.profile
$ cat usr/autologin.profile   
#!/bin/sh
/bin/login -f root
$ cat etc/passwd               
root:x:0:0:root:/root:/bin/sh
最简版如下
$ cat etc/inittab           
console::respawn:getty -L console 0 vt100 -l /usr/autologin.profile
$ cat usr/autologin.profile   
login -f root
$ cat etc/passwd               
root:x:0:0:root:/root:/bin/sh
------
注意 : /bin/sh 不可简写为 sh , 因为他最后要exec 这个 字符串"/bin/sh"
如果没有/root,会提示
login: can't change directory to '/root'
login[41]: root login on 'UNKNOWN'
/ # whoami
root
/ # echo $SHELL
/bin/sh
/ # pwd
/
其他账户登录也行,此时进入之后用户为test
$ cat etc/inittab           
console::respawn:getty -L console 0 vt100 -l /usr/autologin.profile
$ cat usr/autologin.profile   
login -f test
$ cat etc/passwd               
root:x:0:0:root:/root:/bin/sh
test:x:700:1001::/home/test:/bin/sh
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值