1.linux 根文件系统结构
在构建文件系统时,建议遵循FHS标准(Filesystem Hierarchy standard,文件系统层次标准)。FHS并不是一个强制的标准,但是大多的Linux,UNIX发行版本都遵循FHS。
1)/bin 目录存放所有用的都可以用的、基本的命令,这些命令在挂机其他文件系统之前就可以使用,所以/bin目录必须和根文件系统在同一个分区中。
2)/sbin 目录下存放系统命令,即只有管理员能够使用的命令,系统命令还可以存放在/usr/sbin、/usr/local/sbin 目录下。/sbin目录中存放的是基本的系统命令,他们用于启动系统、修复系统等。与/bin 目录相似,在挂接其他文件系统之前就可以使用sbin,所以/sbin目录必须和根文件系统在同一个分区中。如fdisk shutdown
3)/dev 目录下存放设备文件。可以通过读写某个设备的文件操作某个具体硬件。设备文件有两种,字符设备和快设备(注:网络设备不对应与/dev下的节点)。另外misc设备其实也是字符型设备
杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux 内核的include\linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。
其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10,一起归于misc device,其实misc_register就是用主标号10调用register_chrdev()的。
也就是说,misc设备其实也就是特殊的字符设备。
字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10,一起归于misc device,其实misc_register就是用主标号10调用register_chrdev()的。
也就是说,misc设备其实也就是特殊的字符设备。
4)/etc 目录存放各种配置文件
5)/lib 目录存放共享库和可加载的模块(即驱动程序)。即C库等
6)/home 目录时可选的。存放普通用户目录,各用户目录里村妇用户相关的配置文件。
7)/root 用户名为root的目录,与home下普通用户对应
8)/usr 目录里的内容可以存放在另一个分区中,在系统启动后再挂接到根文件系统中的/usr目录下。里面存放的时共享、只读的程序和数据。
9)/var 目录与/usr目录相反,/var 目录中存放可变的数据,比如spool目录(mail news、打印机等用的),log 文件、临时文件
10)/proc 目录,这是一个空目录,常作为proc文件系统的挂接点。proc文件系统时个虚拟的文件系统,它没有实际的存储设备,里面的目录、文件都是由内核临时生成的,用来表示系统的运行状态,也可以操作其中的文件控制系统。
11)/mnt 目录,用于临时挂接某个文件系统的挂接点,通常时空目录。也可以在里面创建一些空的子目录比如/mnt/cdram,用来临时挂接光盘、硬盘
12)/tmp 目录 用于存放临时文件,通常时空目录
2. linux文件类型有7种:
- 表示普通文件
d 表示目录
c 表示字符设备
b 块设备
p FIFO(管道)
l 软连接
s 套接字
3. 权限介绍
s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行。在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(c h m o d命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)。Linux修改密码的passwd便是个设置了SUID的程序,普通用户无读写/etc/shadow文件的权限确可以修改自己的密码。
ls -al /usr/bin/passwd
-rwsr-xr-x 1 root root 32988 2008-12-08 17:17 /usr/bin/passwd
我们可以通过字符模式设置s权限:chmod a+s filename,也可以使用绝对模式进行设置:
设置s u i d:将相应的权限位之前的那一位设置为4;
设置g u i d:将相应的权限位之前的那一位设置为2;
两者都置位:将相应的权限位之前的那一位设置为4+2=6。
如:chmod 4764 filename //设置SUID