busybox下 etc目录下文件分析

busybox下 etc目录下文件分析

2011年11月08日 10:46:02 大鹏1987 阅读数:3016 标签: permissionsshellcommentspathcommand 更多

个人分类: ARM/Linux

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yjp19871013/article/details/6946822

(1) /etc/passwd 用于存放用户基本信息的口令文件。该口令每行由七个域构成:

username:passwd:uid:gid:comments:directory:shell

username:用户名,用户登录所采用的名字,如root,当然有些用户名是为了站位的,为一些目录或文件提供用户。但这些用户不能登录,即伪用户,如bin。

passwd:口令密文域。如果经过shadow,则口令密文为x;如果用户名有效但不能登录,则为*;一般采用x,站位的伪用户采用*。

uid:系统用于唯一标识用户名的数字。uid的分配为:0,超级用户;1~10,守护程序和伪用户;11~99,系统保留用户;100以后,正常用户。

gid:表示用户所在组的默认组号,由/etc/group文件决定。

comments:描述用户的个人信息。

directory:定义用户的初始工作目录。

shell:用户登陆后启用的shell程序。

(2) /etc/group 组账号文件,由四个域组成:

组名:组密码:组ID:组用户

(3) resolv.conf 网络域名解析服务器(DNS)配置文件,格式名为:

服务器名    IP地址

(4) /etc/initatab init进程的初始化配置文件,init进程是系统启动后运行的第一个进程。其中每一行格式为(摘抄自百度百科):

id:runlevel:action:process

id:指定所启动进程的tty。如空着,则启用系统控制台。

runlevel:busybox忽略该字段,可以不填。

process:指定所执行进程的路径,包括命令行选项。

action:用于指定应用到process的动作类型。有以下几种:

sysinit  为init提供初始化命令脚本路径

respawn  每当相应进程终止时,予以重新启动;

askfirst  与respawn类似,但在重启时会显示“Pleas press Enter to activate this console.”信息等待用户按下Enter。

wait  告诉init必须等到相应的进程完成后才能继续执行。

once  仅执行相应的进程一次,而且不会等待完成。

ctrlaltdel  按下ctrl+alt+del组合键时,执行相应的进程。

shutdown  关闭系统之前,执行相应的进程。

restart  当init重新启动时,执行相应的进程,通常此处所执行的进程就是init本身。

(5) /etc/profile shell的全局配置文件,shell启动时,用以配置shell的环境,通常把环境变量放在这里配置。

(6)  /etc/fstab mount的配置文件,它指定了挂载块设备和目录等关系。该文件每一行格式为;

fs_spec fs_file fs_type fs_options fs_dump fs_pass

fs_spec  该字段定义希望加载的文件系统所在的设备或远程文件系统(注意不是本地文件系统),

fs_file 该字段描述希望的文件系统加载的目录点。

fs_type 定义了该设备上的文件系统或本地文件系统类型。

fs_options 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:

选项 含义

ro 以只读模式加载该文件系统

sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度

user 允许普通用户加载该文件系统

quota 强制在该文件系统上进行磁盘定额限制

noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统

fs_dump 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0.文件系统频率(fs_freq),被dump程序使用来确定哪个文件系统需要dump,如果最后一个字段没有设置,系统将认为其值为0,而dump程序则认为此文件系统无需dump。

fs_pass 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0。被fsck程序所使用来确定进行在系统重启进行文件系统检查时的顺序,对于根系统/这个值应设为1,其它文件系统可以设为2,在同一个物理硬盘内的文件系统应该被顺序检测,而不同硬盘中的文件系统则应该同时检测以充分利用系统的并行性。如果最后一个字段值为0或没有设置,fsck程序装跳过此文件系统的检测。

(7) /etc/mdev.conf  mdev的配置文件,控制设备文件的使用权限及隶属关系。每一行格式为:

device regex  uid:gid   octal permissions   [=path]  [@|$|*command]

或者是

maj[,min1[-min2]]   uid:gid  octal permissions  [=path]  [@|$|*command]

针对第二种形式,如 hd[a-z][0-9]* 0:3 660
上面两种形式中,中括号内容可缺省,path在busybox中的手册页解释为

if you want to place the device node into a subdirectory, make sure the path has a trailing /.  If you want to rename the device node, just place the name.
 hda 0:3 660 =drives/
This will move "hda" into the drives/ subdirectory.
 hdb 0:3 660 =cdrom
This will rename "hdb" to "cdrom".

command为想执行的指令,前面的符号手册页解释为:

@ Run after creating the device.
 $ Run before removing the device.
 * Run both after creating and before removing the device.

(8)  /etc/shadow  采用shadow加密时存放相关信息。

(9) /etc/sysconfig  在文件系统命令提示符中显示的名字存在该目录下的HOSTNAME文件中。

(10)  /etc/rc.d  存放启动时要运行的脚本。

(11) /etc/init.d    存放了系统启动时配置以及自启动加载的进程等

原文地址:https://www.cnblogs.com/liushuhe1990/p/9739952.html

时间: 2024-10-09 22:30:02

busybox下 etc目录下文件分析的相关文章

访问指定路径下的目录以及文件

#include "stdafx.h" //vs2010下运行通过 #undef UNICODE #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <iostream> using namespace std; void browseFile(char* path) { char pattern[FILENAME_MAX + 1]; sprintf(p

linux下为目录和文件设置权限,

linux下为目录和文件设置权限,包括子目录的循环递归设置 chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod mode file|dir 改变所有子目录的权限: chmod mode dir -R                  注意后面加了个-R参数 参数就是权限模式 mode = 777 or 752 ,666,,, mode 的三个数字,分别表示owner,group,others所具有的权限. 1 = x 执行 2 = w 写 4 = r 读

Java web 项目读取src或者tomcat下class目录下的xml文件或者properties文件

//生成一个文件对象: File file = new File(getClass().getClassLoader().getResource("test.xml").getPath()); //直接得到一个输入流: InputStream in = getClass().getClassLoader().getResourceAsStream("test.xml"); //在当前线程获取--这个方法不大稳定 //String path = Thread.curr

gulp插件实现压缩一个文件夹下不同目录下的js文件(支持es6)

gulp-uglify:压缩js大小,只支持es5 安装: cnpm: cnpm i gulp-uglify -D yarn: yarn add gulp-uglify -D 使用: 代码实现1:压缩js文件夹下的index.js文件输出到dist文件夹下面(注意要压缩的js文件中此处只能使用es5) 1 var gulp = require('gulp'); 2 var uglify = require('gulp-uglify'); 3 4 gulp.task("uglify",f

linux下统计目录下所有子目录的大小

du -sh * --exclude=tar |awk '{v=substr($1,length($1),1)}v=="G"{$0="1G "$0}v=="M"{$0="2M "$0}v=="K"{$0="3K "$0}v=="0"{$0="4Z "$0}!system("[ -d "$NF" ]")' |s

Linux下使用shell实现上传linux下某个目录下所有文件到ftp

首先我们需要搞清楚单个文件怎么上传,把这个单文件上传到ftp上的实现命名为一个:upload_to_ftp_command.sh 之后,需要弄清楚怎么实现遍历一个目录下的所有文件的,把这个遍历某个目录下的文件实现命名为:foeach_directory_and_uploadfile_to_ftp.sh. upload_to_ftp_command.sh #!/bin/bash FTILE_NAME=$1 ftp -n <<- EOF open 100.170.141.26 user jy ne

【Lua】关于遍历制定路径下所有目录及文件

关于Lua中如何遍历指定文件路径下的所有文件,需要用到Lua的lfs库. 首先创建一个temp.lua文件,用编辑器打开: 要使用lfs库,首先需要把lfs库加载进来 require("lfs") 随后创建一个函数,用来遍历指定路径下的所有文件,这里我们需要用到lfs库中的lfs.dir()方法和lfs.attributes(f)方法. lfs.dir(path) 可以返回一个包含path内所有文件的字符串,如果该路径不是一个目录,则返回一个错误.可以用 for file in lfs

adt下sdk目录下各个文件夹的作用

add-ones:该目录下存放第三方公司为android平台开发的附加功能系统. platforms:该目录下存放不同版本的Android系统. platform-tools:该文件夹下存放了Android平台相关工具 tools:该目录下存放了大量Android开发.调试的工具 docs:该文件夹下存放了Android SDK开发文档的和API文档,启动offline.html就可以了 extras:该文件夹下存放了Google提供的USB驱动.Intel提供的硬件加速等附加工具包 sampl

linux网络编程之面试题----------统计目录下所有目录和文件个数

题目如下: 实现linux下tree的单一功能[只打印目录个数和文件个数(不包含隐藏文件)] 首选我们介绍几个相关的linux 系统API 函数名 函数描述 函数声明 opendir 打开一个目录,成功返回一个DIR*类型指针,失败返回NULL DIR* opendir(const char* name) readdir 读取打开的目录下的子成员,成功返回结构体指针,否则返回NULL struct dirent* readdir(DIR* dir) closedir 关闭已打开的目录.成功返回0