A-A+

LINUX 用户管理学习笔记上

2017年05月30日 计算机技术 暂无评论 阅读 0 views 次

目前自己的centos运维上面倒是基本上用不到用户管理以及用户群组,权限之类的,因为管理linux服务器,基本上都是一个人在做的,但是用户管理也是linux服务器中重要的一环,还是要做下笔记的。

1.1,认识用户和群组

Linux下的用户可以分为三类:超级用户、系统用户和普通用户。

超级用户:用户名为root,具有一切权限,只有进行系统维护(例如建立用户等)或其它必要情形下才用超级用户登录,以避免系统出现安全问题。

系统用户:Linux系统正常工作所必需的内建的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,系统用户不能用来登录,如bin、daemon、adm、lp等用户,系统用户也称为虚拟用户。

普通用户:为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。

其实 Linux 并不会直接认识你的“用户名称”,它认识的其实以数字表示的“用户 ID”,每个用户都有一个“用户 ID”,称为UID。在CentOS 中,超级用户的UID为0,系统用户的 UID一般为1~499,普通用户的UID默认为500~65535之间的值。

1.2 Linux用户登入系统过程

Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有

/etc/passwd、/etc/shadow、/etc/group这几个。

Linux用户登入系统过程实质是系统读取、核对这几个文件的过程。过程如下:

首先Linux会出现一个登录系统的画面提示输入账号,输入账号与密码;

Linux 接着会先找寻 /etc/passwd 里面是否有这个账号名,如果没有则退出登录,如果有的话则将该账号对应的 UID ( User ID )与 GID ( Group ID )读出来,另外,该账号的对应的用户主目录与 shell 设定也一并读出;

核对密码表,这时 Linux 会进入 /etc/shadow 里面找出登录账号与 UID 相对应的、记录,然后核对一下刚刚输入的密码与此文件的密码是否符合;

以上核定没有问题,用户正式进入系统。

1.3 /etc/passwd—用户帐号文件

-rw-r--r-- 1 root root 1558 12-09 21:09 /etc/passwd

从passwd文件中可以看到,第一行是root用户,紧接的是系统用户,普通用户通常在文件的尾部。passwd文件中的每一行由7个字段的数据组成,字段之间用“:”分隔,其格式如下:

php100: x :500 :500 :www.php100.com :/home/php100 :/bin/bash

账号名称: 密码 :UID :GID :个人资料 :主目录 :Shell

1.3 /etc/passwd—文件详解

说明如下:

账号名称 — 用户登录Linux系统时使用的名称。

密码 — 这里的密码是经过加密后的密码,而不是真正的密码,若为“x”,说明密码已经被移动到shadow 这个加密过后的文件。

UID — 用户的标识,

GID — 用户所在组的标识,是一个数值,Linux系统内部使用它来区分不同的组,相同的组具有相同的GID。

个人资料 — 可以记录用户的个人信息,如姓名、电话等信息

主目录 — 对于 root 的主目录在 /root ,所以当 root 登入之后,所在就是 /root 里头;对于其他用户通常是/home/username,这里username是用户名,用户执行“cd~”命令时当前目录会切换到个人主目录,

Shell — 定义用户登录后使用的Shell版本,默认是bash。需要注意的是如果是/sbin/nologin,用户是无法登陆的

1.4 /etc/shadow—用户密码文件

[root@POG ~]# ll /etc/shadow

-r-------- 1 root root 1005 12-09 21:09 /etc/shadow

任何用户对passwd文件都有读的权限,虽然密码已经经过加密,但还是不能避免有人会获取加密后的密码。为了安全,Linux系统对密码提供了更多一层的保护,即把加密后的密码移动到 /etc/shadow 这个文件中,这个文件只有超级用户能够读取shadow的内容;

shadow文件中的每一行由7个字段的数据组成,字段之间用“:”分隔,其格式如下:

php100 :$1$yuu2... :15683 :0 :99999 :7 : : :

① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨

1.4 /etc/shadow—文件详解

①账号名称:

这个文件的第一栏就是账号,必须要与 /etc/passwd 相同才行!

②密码:

这个字段内的数据才是真正的密码,而且是经过加密的密码 (加密) ! 你只会看到有一些特殊符号的字母就是了!需要特别留意的是,虽然这些加密过的密码很难被解出来,如果密码字符串为*,表示系统用户不能被登入,为!表示用户名被禁用,如果密码字符串为空,表示没有密码;

③最近更动密码的日期:

这个字段记录了『更动密码那一天』的日期,这个时间是以 1970 年 1 月 1 日作为 1 而累加的日期,想要知道某个日期的累积日数。

④密码不可被更动的天数:(与第 3 字段相比)

第四个字段记录了:这个账号的密码在最近一次被更改后需要经过几天才可以再被变更!如果是 0 的话, 表示密码随时可以更动的意思。如果配置为 20 天的话,那么当你配置了密码之后, 20 天之内都无法改变这个密码!

⑤密码需要重新变更的天数:(与第 3 字段相比)

为了强制要求用户变更密码,这个字段可以指定在最近一次更改密码后, 在多少天数内需要再次的变更密码才行。你必须要在这个天数内重新配置你的密码,否则这个账号的密码将会『变为过期特性』。 而如果像上面的 99999 (计算为 273 年) 的话,那就表示,永不过期

⑥密码需要变更期限前的警告天数:(与第 5 字段相比)

当账号的密码有效期限快要到的时候 (第 5 字段),系统会依据这个字段的配置,发出『警告』言论给这个账号,提醒他『再过 n 天你的密码就要过期了,请尽快重新配置你的密码!』,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。

⑦密码过期后的账号宽限时间(密码失效日):(与第 5 字段相比)

密码有效日期为『升级日期(第3字段)』+『重新变更日期(第5字段)』,过了该期限后用户依旧没有升级密码,那该密码就算过期了。 虽然密码过期但是该账号还是可以用来进行其他工作的,包括登陆系统取得 bash 。不过如果密码过期了, 那当你登陆系统时,系统会强制要求你必须要重新配置密码才能登陆继续使用,这就是密码过期特性。

⑧账号失效日期:

这个日期跟第三个字段一样,都是使用 1970 年以来的总日数配置。这个字段表示:这个账号在此字段规定的日期之后,将无法再使用。 就是所谓的『账号失效』,此时不论你的密码是否有过期,这个『账号』都不能再被使用!

⑨保留:

最后一个字段是保留的,看以后有没有新功能加入。

1.4 /etc/group—群组文件

这个文件每一行代表一个群组,也是以冒号『:』作为字段的分隔符,共分为四栏,每一字段的意义是:

组名:就是组名;

群组口令:通常不需要配置,这个配置通常是给『群组管理员』使用的, 同样的,口令已经移动到 /etc/gshadow 去了,因此这个字段只会存在一个『x』而已;

GID:就是群组的 ID 啊。我们 /etc/passwd 第四个字段使用的 GID 对应的群组名,就是由这里对应出来的!

此群组支持的账号名称:我们知道一个账号可以加入多个群组,那某个账号想要加入此群组时,将该账号填入这个字段即可。

1.4 /etc/gshadow

这个文件内同样还是使用冒号『:』来作为字段的分隔字符,而且你会发现,这个文件几乎与 /etc/group 一模一样,要注意第二个字段是口令栏, 如果口令栏上面是『!』时,表示该群组不具有群组管理员!

组名

口令栏,同样的,开头为 ! 表示无合法口令,所以无群组管理员

群组管理员的账号 (相关信息在 gpasswd 中介绍)

该群组的所属账号 (与 /etc/group 内容相同!)

标签:

给我留言