linux系统目录结构、用户和用户组管理


本笔记基于32位redhat6 server,使用vmare12作为虚拟机。

linux的目录结构

整体结构

linux系统的种类非常多,但是基本目录结构都一样,


<span style="font-size:14px;">/:根目录,根目录下一般只存放子目录,不存放文件。在linux系统中所有的文件都挂载该目录下。
/bin: 存放系统的可执行的二进制文件,如常用的命令ls、tar、mv、cat等。
/boot:存放linux系统启动时需要的一些文件。
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备。
/etc:存放系统配置文件,大部分文件的配置和控制文件都在该目录下。
/home:系统默认的用户目录,用户创建的自定义文件一般都在这个文件夹下。
/lib:系统使用的函数库的目录。
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
/root:系统管理员root的目录</span>
<pre name="code" class="plain"><span style="font-size:14px;">/mnt 系统提供这个目录是让用户临时挂载其他的文件系统
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件</span>
 
  
<span style="font-size:14px;">/opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包。
</span>
<span style="font-size:14px;">
</span>
<span style="font-size:14px;">/usr:用户文件, <span style="font-family: Arial, Helvetica, sans-serif;">该目录下的/usr/bin文件可以直接被系统识别到,其中的lib和include等文件夹里的文件也能被直接识别到。一般</span>用户会习惯将自己的程序安装在该目录的local文件夹下,但是local下的文件不能直接被系统识别到,必须设置PATH环境变量。<span style="font-family: Arial, Helvetica, sans-serif;">/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录,其中包含:</span></span>
<span style="font-size:14px;">/usr/x11R6 存放x window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库根文件系统
</span>

 /etc下的重要文件

/etc 目录包含各种系统配置文件,下面说明其中的一些。许多网络配置文件也在/etc 中。
1. /etc/rc或/etc/rc.d或/etc/rcS.d
  启动、或改变运行级时运行的脚本或脚本的目录。
2. /etc/passwd
用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其他信息。
3. /etc/fdprm
软盘参数表,用以说明不同的软盘格式。软盘已经是古董了,但是在很多linux系中都去掉相关的应用。
4. /etc/fstab
指定启动时需要自动安装的文件系统列表。也包括用swapon -a启用的s w a p区的信息。
5. /etc/group
类似/etc/passwd ,但说明的不是用户信息而是组的信息。包括组的各种数据。
6. /etc/inittab
init 的配置文件。
7. /etc/issue
包括用户在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。具体内容由系统管理员确定。
8. /etc/magic
“file”的配置文件。包含不同文件格式的说明,“file”基于它猜测文件类型。
9. /etc/motd
motd是message of the day的缩写,用户成功登录后自动输出。内容由系统管理员确定。常用于通告信息,如计划关机时间的警告等。
10. /etc/mtab
当前安装的文件系统列表。由脚本( scritp )初始化,并由mount 命令自动更新。当需要一个当前安装的文件系统的列表时使用(例如df 命令)。
11. /etc/shadow
在安装了影子(shadow)口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd文件中的加密口令移动到/etc/shadow中,而后者只对超级用户( root)可读。这使破译口令更困难,以此增加系统的安全性。
12. /etc/login.defs
login命令的配置文件。
13. /etc/printcap
类似/etc/termcap ,但针对打印机。语法不同。
14. /etc/profile 、/etc/csh . login、/etc/csh.cshrc
登录或启动时bourne或c shells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。
15. /etc/securetty
确认安全终端,即哪个终端允许超级用户(root)登录。一般只列出虚拟控制台,这样就不可能(至少很困难)通过调制解调器(modem)或网络闯入系统并得到超级用户特权。
16. /etc/shells
列出可以使用的shell。chsh 命令允许用户在本文件指定范围内改变登录的s h e l l。提供一台机器f t p服务的服务进程ftpd 检查用户shell是否列在/etc/shells 文件中,如果不是,将不允许该用户登录。
17. /etc/termcap
终端性能数据库。说明不同的终端用什么“转义序列”控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap 中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。

 /dev文件系统

/dev 目录包括所有设备的设备文件。设备文件用特定的约定命名,这在设备列表中说明。
设备文件在安装时由系统产生,以后可以用/dev/makedev 描述。/dev/makedev.local是系统管理员为本地设备文件(或连接)写的描述文稿(即如一些非标准设备驱动不是标准makedev 的一部分)。下面简要介绍/dev下一些常用文件。
1. /dev/console
系统控制台,也就是直接和系统连接的监视器。
2. /dev/hd
ide硬盘驱动程序接口。如: /dev/hda指的是第一个硬盘,had1则是指/dev/hda的第一个分区。如系统中有其他的硬盘,则依次为/dev/hdb、/dev /hdc、. . . . ..;如有多个分区则依次为hda1、hda2 . . . . . .
3. /dev/sd
scsi磁盘驱动程序接口。如有系统有scsi硬盘,就不会访问/dev/had,而会访问/dev/sda。
4. /dev/fd
软驱设备驱动程序。如: /dev/fd0指系统的第一个软盘,也就是通常所说的a:盘,/dev/fd1指第二个软盘,. . . . . .而/dev/fd1h1440则表示访问驱动器1中的4 . 5高密盘。
5. /dev/st
s c s i磁带驱动器驱动程序。
6. /dev/tty
提供虚拟控制台支持。如:/dev/tty1指的是系统的第一个虚拟控制台, /dev/tty2则是系统的第二个虚拟控制台。
7. /dev/pty
提供远程登陆伪终端支持。在进行te l n e t登录时就要用到/dev/pty设备。
8. /dev/ttys
计算机串行接口,对于d o s来说就是“ com1”口。
9. /dev/cua
计算机串行接口,与调制解调器一起使用的设备。
10. /dev/null
“黑洞”,所有写入该设备的信息都将消失。例如:当想要将屏幕上的输出信息隐藏起来时,只要将输出信息输入到/dev/null中即可。

 /usr文件系统

/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。/usr 里的所有文件一般来自l i n u x发行版( d i s t r i b u t i o n);本地安装的程序和其他东西在/usr/local 下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。/usr目录下的许多内容是可选的,但这些功能会使用户使用系统更加有效。/ u s r可容纳许多大型的软件包和它们的配置文件。下面列出一些重要的目录(一些不太重要的目录被省略了)。
1. /usr/x11r6
包含x wi n d o w系统的所有可执行程序、配置文件和支持文件。为简化x的开发和安装,x的文件没有集成到系统中。x wi n d o w系统是一个功能强大的图形环境,提供了大量的图形工具程序。用户如果对microsoft wi n d o w s或m a c h i n t o s h比较熟悉的话,就不会对x win d o w系统感到束手无策了。
2. /usr/x386
类似/ u s r / x 11r6 ,但是是专门给x 11 release 5的。
3. /usr/bin
集中了几乎所有用户命令,是系统的软件库。另有些命令在/bin 或/usr/local/bin 中。
4. /usr/sbin
包括了根文件系统不必要的系统管理命令,例如多数服务程序。
5. /usr/man、/ u s r / i n f o、/ u s r / d o c
这些目录包含所有手册页、g n u信息文档和各种其他文档文件。每个联机手册的“节”都有两个子目录。例如: / u s r / m a n / m an 1中包含联机手册第一节的源码(没有格式化的原始文件),/ u s r / m a n / c a t 1包含第一节已格式化的内容。l联机手册分为以下九节:内部命令、系统调用、库函数、设备、文件格式、游戏、宏软件包、系统管理和核心程序。
6. /usr/include
包含了c语言的头文件,这些文件多以. h结尾,用来描述c语言程序中用到的数据结构、子过程和常量。为了保持一致性,这实际上应该放在/usr/lib 下,但习惯上一直沿用了这个名字。
7. /usr/lib
包含了程序或子系统的不变的数据文件,包括一些s i t e - w i d e配置文件。名字l i b来源于库(library); 编程的原始库也存在/usr/lib 里。当编译程序时,程序便会和其中的库进行连接。也有许多程序把配置文件存入其中。
8. /usr/local
本地安装的软件和其他文件放在这里。这与/ u s r很相似。用户可能会在这发现一些比较大的软件包,如t e x、e m a c s等。

/proc文件系统

/proc 文件系统是一个伪的文件系统,就是说它是一个实际上不存在的目录,因而这是一个非常特殊的目录。它并不存在于某个磁盘上,而是由核心在内存中产生。正是因为如此,在PC机上安装的Ubuntu、redhat等系统都有/proc目录 ,而在很多嵌入式设备上则没有该目录。这个目录用于提供关于系统的信息。下面说明一些最重要的文件和目录(/proc 文件系统在proc man页中有更详细的说明)。
1. /proc/x
关于进程x的信息目录,这一x是这一进程的标识号。每个进程在/proc 下有一个名为自己进程号的目录。
2. /proc/cpuinfo
存放处理器( c p u )的信息,如c p u的类型、制造商、型号和性能等。
3. /proc/devices
当前运行的核心配置的设备驱动的列表。
4. /proc/dma
显示当前使用的d m a通道。
5. /proc/filesystems
核心配置的文件系统信息。
6. /proc/interrupts
显示被占用的中断信息和占用者的信息,以及被占用的数量。
7. /proc/ioports
当前使用的i / o端口。
8. /proc/kcore
系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建。(注意:除非你把它拷贝到什么地方,否则/proc 下没有任何东西占用任何磁盘空间。)
9. /proc/kmsg
核心输出的消息。也会被送到s y s l o g。
10. /proc/ksyms
核心符号表。
11. /proc/loadavg
系统“平均负载”; 3个没有意义的指示器指出系统当前的工作量。
12. /proc/meminfo
各种存储器使用信息,包括物理内存和交换分区( s w a p )。
13. /proc/modules
存放当前加载了哪些核心模块信息。
14. /proc/net
网络协议状态信息。
15. /proc/self
存放到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,这将会是不同的连接。这主要便于程序得到它自己的进程目录。
16. /proc/stat
系统的不同状态,例如,系统启动后页面发生错误的次数。
17. /proc/uptime
系统启动的时间长度。
18. /proc/version
核心版本

linux的用户和用户组

linux系统的用户

Linux 是一个多用户的操作系统,它允许多个用户同时使用该系统。由此,必然有一个保存所有用户信息的策略。
Linux中的用户具备什么样的一些信息呢?这些信息又保存在哪里?

打开系统的/etc/passwd文件,可以看到下面的内容。每一行代表的就是每一个用户的信息,第一行是root的信息,最后一行是本人创建的用户lqc的信息。
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
pulse:x:498:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
saslauth:x:497:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lqc:x:500:500:lqc:/home/lqc:/bin/bash
每一行又有很多段,下面以第一个为例介绍每一个段的含义。
root:x:0:0:root:/root:/bin/bash
第一个(root)是用户名
第二个(x)是密码,不会直接显示x代替
第三个(0)UID,user id,root最高是0,二类是系统用户,占用的是1~499.用户自己创建的就是500以及以上的用户
第四个(0)是group id,root最高是0,二类是系统用户,占用的是1~499
第五个(root)是用户的全名,一般用户名和全名是一样的
第六个(bin)是用户的主目录
最后一个(/bin/bash)是用户执行命令的时候使用哪个解析器

用户组

将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。这个文件比较长,这里只选择了一小部分做示例。
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:
1)“组名”是用户组的名称,组名不应重复。
2)“密码”用户组的密码。用户组一般都没有密码。
3)“组标识号”与用户标识号类似,也是一个整数。
4)“组内用户列表”是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。

文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用
户访问同一文件(包括目录)的权限做了不同的规定,这种规定主要通过文件属性来体现。

实例分析
例:
-rwxr-x-wx 1 root root 890 Nov 7 22:41 config
1. 文件访问权限
2. 文件个数。如果是目录,它表示该目录下的文件个数,如果是文件的话,那这个数目是 ,
3. 文件的拥有者
4. 文件所属的组
5. 文件大小(byte)
6. 文件创建时间
7. 文件名

-rwxr-x-wx
1. 文件类型(1位)
2. 文件拥有者访问权限(3位)
3. 文件所属组用户访问权限( 位)
4. 其他用户访问权限(3位)
‘-’:普通文件;r: 可读; w:可写; x:可执行



你可能感兴趣的:(linux,嵌入式,用户组,redhat6)