/usr/share/man 目录
当我们使用 man command
(command 表示指令)可以获得该指令的用法,详细说明等。
那么这些详细说明是从哪里来的呢,不可能凭空而来的呀! 其实是通过读取说明文件来达到这个效果的,这些说明文件就存放在 /usr/share/man 目录下
同理还有 /usr/share/info 目录,该目录下存放的是使用 info
命令时使用的说明文件
/usr/share/doc
安装软件时,一般会同时安装一些说明文件到/usr/share/doc目录下,例如安装 mysql ,那么在 /usr/share/doc 目录下会出现 mysql-community-common-5.7.21 目录,存放一些
mysql的说明,用法等
账号相关
/etc/passwd 文件
账户信息存放在位置,打开/etc/passwd文件
每一行都代表一个账号,有几行就代表有多少个账号。第一行就是root账号,另外需要注意的是,里面有很多账号上系统运行所需要的系统账号。
例如bin,deamon等
由图可以看到,每一行内容由『:』分隔,共7个字段。分别是
-
账号名称
-
密码。通常是一个*
早期的 unix 系统密码是存放在这个位置了,但现在的 linux 基本上把密码挪到 /etc/shadow 文件里了,所以这里是一个*号 -
账户UID
这个就是账户标识符了。对于这个标识符的使用范围需要说一下
UID 范围 | 说明
-|-|
0 (系统管理员) | 当 UID 是 0 时,代表这个账号是『系统管理员』! 所以当你要让其他的账号也具有 root 的权限时,将该账号的 UID 改为 0 即可。 这也就是说,一部系统上面的系统管理员不见得只有 root 喔! 不过,强烈不建议有多个账号的UID 是 0 ,有一个 root 就够了
1~499 (系统账户) | 保留给系统使用的 UID ,其实除了 0 之外,其他的 UID 权限与特性并没有什么不一样。默认 500 以下的数字让给系统作为保留账号只是一个习惯。
由于系统上面启动的服务希望使用较小的权限去运行,因此不希望使用 root的身份去执行这些服务, 所以我们就得要提供这些运行中程序的拥有者账号才行。这些系统账号通常是不可登入的, 所以他们对应的shell一般都是/sbin/nologin 这个特殊的shell。
根据系统账号的又来,通常系统账号又大略被区分为两种:
1~99:由 distributions 自行建立的系统账号;
100~499:若用户有系统账号需求时,可以使用的账号 UID。
500~65535 (可登入账户) | 给一般使用者使用的
-
GID 群组ID
这个跟/etc/group有关,用户的主群组标识符 -
账户信息说明栏
该账户的一些解释性说明 -
账户家目录
当你用该账户登录时,所进入的目录。例如以 root 账户登录时,进入 /root 目录 -
账户所使用的 Shell
当用户登入系统后就会取得一个 Shell 来与系统内核沟通以进行用户的操作任务。
那为什么root用户所使用的 shell 是 bash 呢?就是在这个字段指定! 这里比较需要注意的是,
有一个 shell 可以用来替代成让账号无法取得 shell 环境的登入动作!那就是/sbin/nologin 这个东西
/etc/shadow 文件
账户的密码存放位置。打开文件,大概是这样子的
同样以『:』分隔,共有9个字段
-
账户名
-
密码
当然这里是加密过的密码,不是铭文 -
最近修改密码的日期
这个字段记录了『更改密码那一天』的日期,不过,很奇怪呀!在我的例子中怎么会是 14126呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为 1 而累加癿日期,1971 年 1 月 1 日则为 366 啦! 得注意一下这个资料哦!上述的14126 指的就是 2008-09-04那一天啦 -
密码不可被改动的天数(相对第 3 个字段)
这个字段记录了:账户的密码在最近一次被修改后,需要经过多少天才能够再次更改密码,为 0 的话表示随时可以更改密码。这个限制是为了防止某些用户频繁的修改密码,例如这个字段为5,那么在上次修改密码后,5天内是不能再次修改密码的 -
密码需要重新变更的天数(相对第 3 个字段)
这个字段记录了:在上一次修改密码过后,多少天内需要再次更改密码。这就强制要求用户经常变更密码,如果没有按照这个要求在时限内修改密码,那么这个账户的密码就会变为『过期特性』(注意并不是无效),而如果像上面设置的99999的话,那就表示不需要强制更新密码 -
密码需要变更期限前的警告天数(相对第 5 字段)
当账号密码有效期限快要到的时候(第 5 字段),系统会根据这个字段的设定,提前向用户发送警告信息:『再过 n 天,你的密码就要过期了』
像上面的例子,再密码到期之前的7天内,系统会向用户发送警告 -
密码过期后的账号宽限天数
密码的有效日期为:『密码最新修改日期(第 3 字段)』+『密码需要重新变更天数(第 5 字段)』,过了该日期后,用户依旧没有更新密码,
那么账号就算过期了(不是失效),但这时账户依然能够登入系统,并取得bash,只不过这时系统会强制要求你更新密码才能继续使用,这就是
『密码过期特性』
那么这个字段就表示密码过期几天后,如果用户还没有更新密码,那么账户密码就会『失效』,就再也无法登入了 -
账户失效日期
这个字段跟第 3 个字段一样,是以1970/01/01以来的天数来算的。表示:过了这个日期,账户就『失效』,再也无法使用了了,不管密码有没有失效,都无法再使用这个账户 -
保留字段
这个字段是保留的,看以后有没有需要用到它
/etc/group 文件
群组信息存放位置
服务相关目录与文件
系统上通常运行着多个服务,那么是怎么提供这些服务的呢?归根结底,肯定是有一个可执行文件(脚本)在跑着的。要启动一个服务,需要做一些前置工作:运行环境的侦测,配置文件的分析,PID文档的放置等等,
这些工作不可能每次都由用户去手工操作,所以由服务开发者提供一个启动脚本,这个脚本会做运行环境侦测,配置文件分析,PID文档放置等这些工作,要启动服务,执行这个启动脚本就可以了。
那么这些启动脚本放在哪里呢,这里说一下相关目录。
/etc/init.d/*
系统上几乎所有的服务启动脚本都放在这里。这是一个公认的目录,在 centos 下实际上是存放到 /etc/rc.d/init.d/* 下面的,但也提供了连接文档 /etc/init.d/ 指向 /etc/rc.d/init.d/。
/etc/sysconfig/*
几乎所有的服务都会将初始化的一些选项设置写入到这个目录下,举例来说,登录档的 syslog 这支服务的初始化设定就写入在 /etc/sysconfig/syslog 这里呢!而网络的设定则写在 /etc/sysconfig/network 这个档案中。
所以,这个目录内的档案也是挺重要的。
/etc/xinetd.conf, /etc/xinetd.d/* :super daemon 配置文件
super daemon 的主要配置文件 (其实是默认值) 为 /etc/xinetd.conf 。不过 super daemon只是一个统一管理的机制,他所管理的其他 daemon 的设定则写在 /etc/xinetd.d/* 里头
/etc/* :各服务各自的配置文件
/var/lib/* :各服务产生的数据库
一些会产生数据的服务都会将他的数据写入到 /var/lib/ 目录中。举例来说,数据库管理系统 MySQL 的数据库默认就是写入 /var/lib/mysql/ 这个目录下啦!
/var/run/* :各服务的程序之 PID 记录处
daemon 通常会将自己的 PID 记录一份到/var/run/ 当中!例如登录文件的 PID 就记录在 /var/run/syslogd.pid 这个档案中。如此一来,/etc/init.d/syslog 就能够简单的管理自己的程序啰。