Linux profile and inittab file

题图:gratisography

Linux profile and inittab file

/etc/profile文件是每个用户登录时都会运行的环境变量设置,属于系统级别的环境变量,设置在里面的东西对所有用户适用。/etc/inittab文件是系统初始化进入busybox后跑的一个配置文件。

下面通过具体例子,来分析这两个文件。

1.profile文件

通过两个例子来说明profile的使用。

a.修改路径提示


在console后,会有前面的一段提示信息,如下:

root@OpenWrt:/#
root@OpenWrt:/# cd etc/init.d/
root@OpenWrt:/etc/init.d#

会提示路径等,那这些信息是在那边限制的呢,就是位于/etc/中的profile文件,里面有个参数PS1,如下:

export PS1='\u@\h:\w\$ '
  • \u:当前用户名 ;
  • @:显示@ ;
  • \h:显示主机第一个名 ;
  • \w:完整工作目录,
  • $:显示$

b.添加初次进入console提示信息


在路由器开机完后,在console按下回车键,会跳出一串拼接而成的openwrt字样,如下:

# cat /etc/banner
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 CHAOS CALMER (Chaos Calmer, r49389)
 -----------------------------------------------------

那上面那一串字符是哪里提供的呢?如果想使用自己特色的符号在怎么修改,下面就进行说明。

其实那一串字符是在/etc/banner里面

# cat /etc/banner
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 CHAOS CALMER (Chaos Calmer, r49389)
 -----------------------------------------------------

那我们需要做的就是,把/etc/banner里面的内容改成我们需要的形状,然后在/etc/profile里面添加/etc/banner的调用即可。

如在/etc/banner文件下加入如下字形

cat /etc/banner 
   ______                      __
  |  ____|.----..----..----. |  |_ .----..----.
  | |____ |   _||  -_||    | |   _||    ||   _|
  |______||__|  |____||____|.|____||____||__|
                                  C R E A T O R
 -----------------------------------------------------
 CHAOS CALMER (Chaos Calmer, r49389)
 -----------------------------------------------------

在/etc/profile里面添加如下语句

[ -f /etc/banner ] && cat /etc/banner

在console上进行测试验证,看结果是否正确。

2.inittab文件

busybox的init进程的初始化被分解为一系列初始化活动来完成,这些初始化活动通常被写入inittab配置文件里,init进程通过调用inittab来执行这次活动。

a.inittab文件的含义格式


inittab配置文件中的每一条都被看做是一个初始化活动,busybox中定义了8种初始化活动供inittab文件使用,如下:

活动名称 含义
sysinit 为init进程提供初始化命令脚本
wait 告诉init进程必须等到相应的进行执行完成之后,才能继续执行
once 仅执行相应的进程一次
respawn 当相应的进行终止之心时,重新启动该进行
askfirst 与respawn类似,不过init进程先输出“Please press Enter to active this console”,等用户按回车键之后,才启动子程序
shutdown 当系统关机时,执行相应的进程
restart 当init进程重启时,执行相应的进程,通常此处执行的进程就是init本身
ctrlatldel 当按Ctrl+Alt+Delete组合键时,执行相应的进程

openwrt下还有一个初始化活动就是askconsole,好像与askfirst是一样的意思。

inittab输入的格式如下:

<id>:<runlevels>:<action>:<process>

每个字段的含义如下:

字段 含义
id 表示该进程要使用的控制台,省略则与init进程一样的控制台
runlevels 对于busybox提供的init程序,这个字段没有意思,可以省略
action 表示init进程如何控制该子进程
process 要执行的程序,它可以是可执行程序,也可以是脚本

在busybox的init_main()函数里会调用parse__inittab()函数来解析inittab文件,如果没有inittab文件parse_inittab()函数也会添加默认值。

b.添加console访问权限


如果用过cisco或huawei的部分路由器,为了安全性考虑,进行串口登入的时候也希望像ssh那样要求输入用户名和密码才能进入控制台,这样可以防止其他人员随意更改盗取路由信息。

console的访问权限与Linux桌面系统如Ubuntu的用户管理类似,所以需要先对Linux的用户管理有一定了解,简单说明就是,通过/etc/passwd和/etc/shadow文件进行匹配。

/etc/passwd文件存储账户信息,如root后面的x代表密码为隐性的,存在shadow里面。

cat /etc/passwd 
root:x:0:0:root:/root:/bin/ash
daemon:*:1:1:daemon:/var:/bin/false
ftp:*:55:55:ftp:/home/ftp:/bin/false
network:*:101:101:network:/var:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false

/etc/shadow文件存储经过加密后的密码,如root后面的一大串字符。

cat /etc/shadow 
root:$1$hPNSjUZA$7eKqEpqVYltt9xJ6f0OGf0:15533:0:99999:7:::
daemon:*:0:0:99999:7:::
ftp:*:0:0:99999:7:::
network:*:0:0:99999:7:::
nobody:*:0:0:99999:7:::

所以在嵌入式Linux上也类似,我们要做的就是对这几个文件的添加设置,下面就如何添加访问权限进行说明。

1.修改/etc/inittab
Linux文件系统的启动一般都要经过busybox,所以第一步就需要将inittab初始化活动进行修改,inittab脚本内容一般如下:

::sysinit:/etc/init.d/rcS
::shutdown:/bin/umount -a -r
::respawn:-/bin/sh

修改为

::sysinit:/etc/init.d/rcS
::shutdown:/bin/umount -a -r
::respawn:-/bin/login

2.将Ubuntu里面的/etc/passwd、/etc/group、/etc/shadow到rootfs/etc下

# cp /etc/passwd   rootfs/etc
# cp /etc/group    rootfs/etc 
# cp /etc/shadow   roofs/etc

对以下三个文件修改,只保存与root相关的项,根据具体情况内容会有所不同。

  • 修改passwd为root:x:0:0:root:/root:/bin/ash,只保存与root相关项

  • 修改group为root:x:0:root,只保存与root相关项

  • 修改shadow为root:$1$1$hPNSjUZA$7eKqEpqVYltt9xJ6f0OGf0:15533:0:99999:7:::,只保存与root相关项

登陆开发板时需输入用户名密码,Ubuntu桌面系统的一致。

Linux profile file的分析就到这边,有感悟时会持续会更新。

注:以上内容都是本人在学习过程积累的一些心得,难免会有参考到其他文章的一些知识,如有侵权,请及时通知我,我将及时删除或标注内容出处,如有错误之处也请指出,进行探讨学习。文章只是起一个引导作用,详细的数据解析内容还请查看Linux相关教程,感谢您的查阅。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,009评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,808评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,891评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,283评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,285评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,409评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,809评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,487评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,680评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,499评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,548评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,268评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,815评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,872评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,102评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,683评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,253评论 2 341

推荐阅读更多精彩内容