busybox初始化配置 登陆shell 非登陆shell

来源:互联网 发布:数据分析怎么写模板 编辑:程序博客网 时间:2024/06/03 09:57

busybox取消了runlevels,runlevels已经被busybox的init进程忽略。如果想使用runlevels,就使用sysvinit来代替。
每个入口的格式:<id>:<runlevels>:<action>:<process>
<id>: busybox的这个参数不是常规意义上的<id>,它是指指定进程运行的tty。其内容是/dev下的tty设备或者别名。这个字段留空表示忽略。指定错误,会得到异常。
<runlevels>: 被完全忽略,只需留空.
<action>: 有效的actions包括: sysinit, respawn, askfirst, wait,once,restart,ctrlaltdel, and shutdown.
askfirst和respawn类似,只是在运行进程前,先打印一句"Please press Enter to activate this console."等待用户敲入回车后再执行。
不能识别的<action>将导致init发送错误信号,并继续执行(只提示错误)。
<process>: 指定执行的进程和它的命令行。

如果busybox没有inittab也不影响,它将默认按以下处理:
::sysinit:/etc/init.d/rcS
::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
如果发现/dev/console不是一个串口设备,将执行:
tty2::askfirst:/bin/sh
tty3::askfirst:/bin/sh
tty4::askfirst:/bin/sh

在shell前加一个'-'前缀表示是一个登陆shell,比如:
::askfirst:-/bin/sh;也可以指定登陆到哪个tty,比如:
tty2::askfirst:-/bin/sh
tty3::askfirst:-/bin/sh
tty4::askfirst:-/bin/sh
/sbin/getty可以指定选择某个tty.比如:
tty4::respawn:/sbin/getty 38400 tty5   /*  /sbin/getty 波特率 tty号  */
将串口输出到终端:
#::respawn:/sbin/getty -L ttyS0 9600 vt100
串口输出到modem:
#::respawn:/sbin/getty 57600 ttyS2


补充:

什么是Linux的登录shell与非登录shell?

就是说 这个shell是可以用于用户登录使用的,比如
/bin/bash ,/bin/sh ,/bin/csh ……
一般Linux默认的用户shell都是bash ,也就是说你可以登录进去敲命令。

非登陆shell ,经典的 /bin/nologin 就是一个非登陆shell,也就是说如果一个用户默认的shell是它的话,这个用户即使登录进Linux也不无法使用Linux。
=================
shell是用户和计算机交流的中介,“登录shell”保证用户和计算机交流,“非登陆shell”无法让用户与计算机交流。
==================

关于用户的默认登录shell是在 /etc/passwd 文件中记录的。
“非登陆”shell 有它特定的用途,比如一个用Linux搭建一个ftp服务器,并且创建了很多的ftp用户,那么就可以将这些用户的默认shell改为nologin,这样一来,这些虽然是Linux上的用户可是却无法登录进Linux主机,只能登录ftp服务器了。保证了安全性。

原文:

1: http://blog.csdn.net/lqrensn/article/details/5955740

2,:https://zhidao.baidu.com/question/174772752.html

0 0
原创粉丝点击