文件系统
内核提供了一个接口,用来显示一些它的数据结构,这些数据结构对于决定诸如使用的中断、初始化的设备和内存统计信息之类的系统参数可能很有用。这个接口是作为一个独立但虚拟的文件系统提供的,称为 /proc 文件系统。很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。例如,/proc/modules 文件列举系统中当前加载的模块。lsmod 命令读取此信息,然后将其以人们可以看懂的格式显示出来。下面表格中指定的 mtab 文件以同样的方式读取包含当前安装的文件系统的 /proc/mount 文件。
/etc/mtab |
这将随着 /proc/mount 文件的改变而不断改变。换句话说,文件系统被安装和卸载时,改变会立即反映到此文件中。 1.文件格式 /etc/mtab的格式和/etc/fstab是一样的.但这个文件不能算是用户配置文件,他是由系统维护的.和/etc/fstab的区别在于, fstab是系统启动时需挂载的文件系统列表,而mtab是系统当前已挂载的文件系统列表,它由系统维护,在用户执行了mount或者umount命令后自动更新.用户不应该对此文件作任何修改. 2.安全性 /etc/mtab的默认权限仍然是644 3.相关命令 mount umount smbmount |
/etc/fstab |
1.文件格式 /etc/fstab记载了系统启动时自动挂载的文件系统。一行为一条记录。每条记录有6个字段,字段间用空格或者tab键分开。这六个字段分别是:设备名称,挂载点(除交换分区为swap外,都必须是一个存在的目录名),文件系统类型,mount选项,是否需要dump(1表示需要,0表示不需要),在 reboot期间fsck检查的顺序(激活文件系统设定为1,其余文件系统设定为2,若设定为0表示该文件系统不需要被检查)。 在linux和windows共存时,也许想开机自动挂载windows分区,那么就可以在这个文件里加上相应的记录。 某些时候对硬盘分区作了调整以后,这里也需要做一些相应的修改。否则会出现一些问题。 可用的mount选项: async 对该文件系统的所有I/O操作都异步执行 ro 该文件系统是只读的 rw 该文件系统是可读可写的 atime 更新每次存取inode的存取时间 auto 可以使用 -a 选项mount defaults 使用预设的选项:rw,suid,dev,exec,auto,nouser,async dev 解释在文件系统上的字符或区块设备 exec 允许执行二进制文件 noatime 不要在这个文件系统上更新存取时间 noauto 这个文件系统不能使用 -a 选项来mount nodev 不要解释在文件系统上的字符或区块设备 noexec 不允许在mounted文件系统上执行任何的二进制文件。这个选项对于具有包含非它自己的二进制结构的文件系统服务器而言非常有用 nosuid 不允许setuid和setgid位发生作用。(这似乎很安全,但是在安装suidperl后,同样不安全)。 nouser 限制一般非root用户mount文件系统 remount 尝试重新mount已经mounted的文件系统。这通常是用来改变文件系统的mount标志,特别是让只读的文件系统变成可擦写的 suid 允许setuid和setgid位发生作用 sync 文件系统的所有I/O同步执行 user 允许一般非root用户mount文件系统。这个选项会应用noexec,nosuid,nodev这三个选项(除非在命令行上有指定覆盖这些设定的选项)。 3.安全性 /etc/fstab的默认权限是644,所有者和所有组均为root 2.相关命令 mount df 列举计算机当前“可以安装”的文件系统。这非常重要,因为计算机引导时将运行 mount -a 命令,该命令负责安装 fstab 的倒数第二列中带有“1”标记的每一个文件系统。 |
/etc/mtools.conf |
DOS 类型的文件系统上所有操作(创建目录、复制、格式化等等)的配置。 |
系统管理
/etc/group |
1.文件格式 /etc/group存储了系统中所有用户的基本信息.它的格式和/etc/passwd的格式基本类似,这里就说简单一点, /etc/group也是由一条条的记录组成.每条记录分4个字段.分别是组名,组口令,组ID和该组包含用户列表.其中组口令不再使用(现在只是保留为 x).最后一个域是一个用逗号分隔的用户名列表,这个组的成员就是在这里列出的所有用户. 2.安全性 /etc/group的默认权限是644,所有者和所有组均为root.注意经常检察. 3.相关命令 groupadd groupdel groupmod groups 包含有效的组名称和指定组中包括的用户。单一用户如果执行多个任务,可以存在于多个组中。例如,如果一个“用户”是“project 1”工程组的成员,同时也是管理员,那么在 group 文件中他的条目看起来就会是这样的: user: * : group-id : project1 |
/etc/nologin |
这是一个普通的文本文件.你可以在里面写上你喜欢的任何东西./etc/nologin的作用在于,如果它存在,那么系统将拒绝任何非root用户的登录请求,并对其它登录用户显示此文件的内容 此文件常由系统在停机前自动生成.有时系统管理员也会手工生成它,用以禁止其它用户登录,方便进行一些管理工作. |
etc/passwd |
1.文件格式 /etc/passwd存储了系统中所有用户的基本信息.可以说这是系统中最重要的一个配置文件.对它作任何修改一定要小心谨慎.同时要经常检察这个文件,包括它的内容和权限设置. 使用vi编辑程序打开此文件,可以看到这个文件由许多行记录组成.每一行记录对应着一个用户.我们以第一行为例.第一行一般是root用户的记录,尽管这不是必需的.实际上用户记录出现的顺序并没有任何的意义. 在我的系统中,/etc/passwd的第一行看起来是这样的: root:x:0:0:root:/root:/bin/bash 每一条记录都由7个字段组成,每个字段之间用冒号隔开.第一个字段是用户名,示例中是root.第二个字段是用户口令,示例中是一个字符x,但这并不表示 root的口令是单个字符x,而是说用户口令被加密了,并且加密口令也没有放在本文件中,而是放到了/etc/shadow(参考 /etc/shadow).假如删除这个x,那么root的口令就清空了.第三个字段是用户的用户ID,即uid.第四个字段是用户的组ID,即gid. 这里要注意,系统分辨两个用户是看他们的uid是否相同而不是看他们的用户名是否相同.用户名不同但uid相同的两个用户实际上是同一个用户.对组来说也有类似的规则.所以这两个字段大家一定要注意.第五个字段是用户全称,没有什么实际用途,相当于注释,这里是root.第六个字段是用户的主目录 (home),即登录系统后默认所处目录,这里是/root.最后一个字段是用户的登录shell,可以是系统拥有的任何一个shell的完整路径,这里是/bin/bash.注意,这个字段可以有一个特殊的值,即/sbin/nologin.如果把一个用户的登录shell设置为 /sbin/nologin的话,系统将禁止此用户的本地登录. 请参阅“man passwd”。它包含一些用户帐号信息,包括密码(如果未被 shadow 程序加密过)。 2.安全性 /etc/passwd的默认权限为644,所有者和所有组均为root.切记,在任何情况下都不要更改它. 3.相关命令 passwd useradd userdel adduser usermod users |
/etc/rpmrc |
rpm 命令配置。所有的 rpm 命令行选项都可以在这个文件中一起设置,这样,当任何 rpm 命令在该系统中运行时,所有的选项都会全局适用。 |
/etc/securetty |
包含设备名称,由 tty 行组成(每行一个名称,不包括前面的 /dev/),root 用户在这里被允许登录。 1.文件格式 这是一个设备文件的列表.文件名取相对于/dev的相对路径.如,/dev/tty1记为tty1 root只有从这个列表中列出的设备上才可以登录系统. 例如: 代码: $cat /etc/securretty tty1 tty2 tty3 这里root被限定只能从/dev/tty1, /dev/tty2, /dev/tty3这三个设备上登录系统 如果/etc/securretty不存在的话,那么root将可以从任何设备登录系统. 2.安全性 /etc/securetty的默认权限是600,所有者和所有组都是root |
/etc/shadow |
包含加密后的用户帐号密码信息,还可以包括密码时效信息。包括的字段有:
1.文件格式 /etc/shadow文件保存的是用户名,密码,用户账号设置相关信息。 例: root:$1$6UviCNvh$WTR0zPMek41KmzD0Z1DdV1:12264:3:4:5:6:12267: 第一段: root----- 用户注册名 第二段: $1$6UviCNvh$WTR0zPMek41KmzD0Z1DdV1 ----加密口令 第三段: 12264-----上次更动密码的日期,以1970年1月1日为1,1天加1 第四段: 3---------密码将被允许修改之前的天数(0 表示“可在任何时间修改”) 第五段: 4---------系统将强制用户修改为新密码之前的天数(1 表示“永远都不能修改”) 第六段: 5---------密码过期之前,用户将被警告过期的天数(-1 表示“没有警告”) 第七段: 6---------密码过期之后,系统自动禁用帐户的天数(-1 表示“永远不会禁用”) 第八段: 12267-----该帐户被禁用的天数(-1 表示“该帐户被启用”).以1970年1月1日为1,1月2日为2 第九段 ------ 保留供将来使用 注:第2段中为*表示帐号不可登录,如密码前为 !! 或只有 !! 表示帐号被锁 2.安全性 /etc/shadow的默认所有者和所有组均为root. 建议运行# chattr +i /etc/shadow来保护文件使其不被意外地删除或重写 3.相关命令 passwd useradd userdel usermod |
/ect/gshadow |
1.文件格式 /ect/gshadow文件保存的是用户和组群设置的信息 例: root:!!::root,wa1 第一段:组名 第四段:该组包含用户列表 2.安全性 /etc/gshadow的默认所有者和所有组均为root. 建议运行# chattr +i /etc/shadow来保护文件使其不被意外地删除或重写 3.相关命令 groupadd groupdel groupmod groups |
/etc/sysctl.conf |
1.文件格式 /etc/sysctl.conf是sysctl程序的配置文件.sysctl可以在系统运行时更改内核参数./etc/sysctl.conf中的配置将在系统起动时执行. 以 # 和 ; 开始的行是注释,将和空白行一起被忽略. 配置项的格式为: token = value token是一个键名,value是对应的键值.token和value前后的空格将被忽略 token不能是随意的字符串.他和/proc/sys下的文件有一一对应的关系: 假设foo是/proc/sys下的一个文件.删除foo的绝对路径前的 "/proc/sys" 这一部分,然后把剩下部分中的 "/" 替换成 ".",得到的字符串就是foo所对应的键名.例如: /proc/sys/net/ipv4/ip_forward对应的键名为net.ipv4.ip_forward 应用举例: Redhat Linux 9默认是禁止ip转发的,而我们在做ip伪装时需要起用ip转发.通常的做法是在iptables的规则之前加上一句: echo 1>/proc/sys/net/ipv4/ip_forward 实际上我们也可以在/etc/sysctl.conf中写上: net.ipv4.ip_forward = 1 这样系统就默认起用ip转发了.当然他不会立即生效.因为/etc/sysctl.conf是在系统起动时读入的.想要立即生效的话,请使用sysctl命令. 2.安全性 /etc/sysctl.conf的默认权限是644,所有者和所有组均为root 3.See also sysctl(8) sysctl.conf(5) proc(5) procinfo(8) |
/etc/shells |
包含系统可用的可能的“shell”的列表。 |
/etc/motd |
每日消息;在管理员希望向 Linux 服务器的所有用户传达某个消息时使用。 |