在嵌入式linux开发中,由busybox生成的文件系统,默认是没有用户登录的,如下:
~ #
启用用户登录,方法如下:
一、busybox。 1、配置。Login/Password Management Utilities --->
[*] getty
[*] login
[] Run logged in session in a child process
[] Support for PAM (Pluggable Authentication Modules)
[*] Support for login scripts
[*] Support for /etc/nologin
[*] Support for /etc/securetty
[*] passwd
[*] Check new passwords for weakness
二、rootfs。
1、/etc/group
root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,ms tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10:2、/etc/passwd
root::0:0:root:/:/bin/sh(输完用户名,回车,直接进入用户)或root:K99ZQ9IohtbWU:0:0:root:/:/bin/sh(输完用户名,回车,进入密码输入,回车,进入用户) daemon:x:1:1:daemon:/sbin: bin:x:2:2:bin:/bin: sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync nobody:x:99:99:Nobody:/:/sbin/nologin ftp:x:501:0:ftp:/var:/bin/sh usb:x:504:100::/usb:3、/etc/shadow
root::1:0:99999:7::: daemon:*:18480:0:99999:7::: bin:*:18480:0:99999:7::: sys:*:18480:0:99999:7::: sync:*:18480:0:99999:7::: ftp:!:0:::::: usb:*:13941::::::4、/etc/inittab
::sysinit:/etc/init.d/rcS console::askfirst:-/bin/login ::ctrlaltdel:/sbin/reboot ::shutdown:/sbin/swapoff -a ::shutdown:/bin/umount -a -r ::restart:/sbin/init
直接进入,不需要输入用户名和密码,配置如下:
#::once:-/bin/sh console::askfirst:-/bin/sh
需要输入登录信息,配置如下:
#::once:-/bin/sh console::askfirst:-/bin/login附:/etc/inittab
# /etc/inittab init(8) configuration for BusyBox # # Copyright (C) 1999-2004 by Erik Andersen # # # Note, BusyBox init doesn't support runlevels. The runlevels field is # completely ignored by BusyBox init. If you want runlevels, use sysvinit. # # # Format for each entry:: :: # # : WARNING: This field has a non-traditional meaning for BusyBox init! # # The id field is used by BusyBox init to specify the controlling tty for # the specified process to run on. The contents of this field are # appended to "/dev/" and used as-is. There is no need for this field to # be unique, although if it isn't you may have strange results. If this # field is left blank, it is completely ignored. Also note that if # BusyBox detects that a serial console is in use, then all entries # containing non-empty id fields will be ignored. BusyBox init does # nothing with utmp. We don't need no stinkin' utmp. # # : The runlevels field is completely ignored. # # : Valid actions include: sysinit, respawn, askfirst, wait, once, # restart, ctrlaltdel, and shutdown. # # Note: askfirst acts just like respawn, but before running the specified # process it displays the line "Please press Enter to activate this # console." and then waits for the user to press enter before starting # the specified process. # # Note: unrecognised actions (like initdefault) will cause init to emit # an error message, and then go along with its business. # # : Specifies the process to be executed and it's command line. # # Note: BusyBox init works just fine without an inittab. If no inittab is # found, it has the following default behavior: # ::sysinit:/etc/init.d/rcS # ::askfirst:/bin/sh # ::ctrlaltdel:/sbin/reboot # ::shutdown:/sbin/swapoff -a # ::shutdown:/bin/umount -a -r # ::restart:/sbin/init # # if it detects that /dev/console is _not_ a serial console, it will # also run: # tty2::askfirst:/bin/sh # tty3::askfirst:/bin/sh # tty4::askfirst:/bin/sh # # Boot-time system configuration/initialization script. # This is run first except when booting in single-user mode. # ::sysinit:/etc/init.d/rcS # /bin/sh invocations on selected ttys # # Note below that we prefix the shell commands with a "-" to indicate to the # shell that it is supposed to be a login shell. Normally this is handled by # login, but since we are bypassing login in this case, BusyBox lets you do # this yourself... # # Start an "askfirst" shell on the console (whatever that may be) #::once:-/bin/sh console::askfirst:-/bin/login # Start an "askfirst" shell on /dev/tty2-4 #tty2::askfirst:-/bin/sh #tty3::askfirst:-/bin/sh #tty4::askfirst:-/bin/sh # /sbin/getty invocations for selected ttys #tty4::respawn:/sbin/getty 38400 tty5 #tty5::respawn:/sbin/getty 38400 tty6 # Example of how to put a getty on a serial line (for a terminal) #::respawn:/sbin/getty -L ttyS0 9600 vt100 #::respawn:/sbin/getty -L ttyS1 9600 vt100 # # Example how to put a getty on a modem line. #::respawn:/sbin/getty 57600 ttyS2 # Stuff to do when restarting the init process ::restart:/sbin/init # Stuff to do before rebooting ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff -a



