用户信息文件/etc/passwd
这个文件中保存的就是中所有的用户及其对应的用户主要信息。
文件格式:
第1数组
第2数组
第3数组
第4数组
第5数组
第6数组
第7数组
用户名称
密码标志
用户ID
组ID
用户说明
家目录
登录后的
比如:root:x:0:0:root:/root:/bin/bash
lizhouwei:x:1000:1000:lizhouwei:/home/lizhouwei:/bin/bash
用户名称
第1个数组是用户名称,用户名称只是为了便捷管理员记忆,Linux系统是通过用户ID(UID)来分辨不同用户、分配用户权限的。而用户名称和UID的对应正是通过/etc/passwd这个文件来定义的。
密码标志
第2个数组是密码标志linux防火墙设置,这儿的"x"代表的是密码标志,表示用户是拥有密码的,而不是真正的密码,真正的密码是保存在/etc/shadow文件中的。因为这个文件的权限是644,查询如下:
[root@lot/]#ls-letc/passwd
-rw-r--r--.1rootroot2282Nov520:19etc/passwd
所有用户都可以读取/etc/passwd文件,这样特别容易造成密码的泄密。似乎密码是加密的,并且采用暴力破解的方法也是才能进行破解的。所以如今的Linux系统把真正的加密密码串放置在影子文件/etc/shadow中,而影子文件的权限是000,查询如下:
[root@localhost/]#ls-letc/shadow
----------.1rootroot1266Nov520:19etc/shadow
这个文件是没有任何权限的,但由于我是root用户,所以读取权限不受限制。其实,用强制更改的方式也是可以手工更改这个文件的内容的。只有root用户可以浏览和操作这个文件,这样就最大限度地保证了密码的安全。
所以在/etc/passwd中"x"只是密码标志,代表用户是拥有密码的,具体的密码要去/etc/shadow文件中查询。假如删掉了密码标志"x",这么系统会觉得这个用户没有密码,因而造成只输入用户名而不用输入密码就可以登录(用户无密码时远程是不可以登录的)。
UID
第3个数组就是用户ID(UID),在Linux中系统是通过UID来辨识不同的用户和分配用户权限的。这种UID是有使用限制和要求的:
0:超级用户UID。假如用户UID为0,则代表这个帐号是管理员帐号。在Linux中只需把其他用户的UID更改为0就可以把普通用户升级成管理员了。
1~499:系统用户(伪用户)UID。这种UID是系统保留给系统用户的UID,也就是说UID是1~499范围内的用户是不能登入系统的,而是拿来运行系统或服务的。其中,1~99是系统保留的帐号,系统手动创建;100~499是预留给用户创建帐号的linux 用户有效期,并且这种用户同样也不能被删掉,由于一旦删掉,依赖这种用户运行的服务或程序就不能正常执行,会造成系统问题。
500~65535:普通用户UID。构建的普通用户UID从500开始,最大到65535。
说明:在2.6.x内核之后的Linux系统用户UID早已可以支持232个用户了。
GID
第4个数组就是用户的组ID(GID),这个组ID是指用户的初始组的标志号。在Linux中用户可以同时加入初始组和附加组。
初始组:指用户一登入录就立即拥有这个用户组的相关权限。每位用户的初始组只能有一个,在添加用户时假如不指定初始组,则系统会构建一个与用户名相同的组作为用户的初始组。诸如:我们手工添加用户lizhouwei,在构建用户lizhouwei的同时还会构建lizhouwei组作为lizhouwei用户的初始组。
附加组:指用户可以加入多个其他的用户组,并拥有这种组的权限。每位用户只能有一个初始组,除初始组以外,把用户再加入其他的用户组,这种用户组就是这个用户的附加组。附加组可以有多个,但是用户可以有这种附加组的权限。诸如:刚才的lizhouwei用户除属于初始组lizhouwei外,我又把它加入了users组,这么lizhouwei用户同时属于lizhouwei组、users组,其中lizhouwei是初始组,users是附加组。其实,初始组和附加组的身分是可以更改的,并且我们在工作中不更改初始组,只更改附加组,由于更改了初始组有时会让管理员逻辑混乱。
用户说明
第5个数组是这个用户的简单说明,没有哪些特殊作用,可以不写。
家目录
第6个数组是这个用户的家目录,也就是用户登入后有操作权限的访问目录,我们把这个目录称为用户的家目录。
普通用户家目录:/home/用户名所有者所属组都是此用户权限700;
超级用户的家目录:/root所有者所属组都是root权限550;
说明:在psswd中虽然将用id(UID)改为0用户管理员,其家目录的位置是不变的,还是/home/用户名
登陆以后的Shell
Shell就是Linux的命令类库。将Linux的命令翻译成系统可以辨识的机器语言linux 用户有效期,同时把系统的执行结果翻译为用户可以辨识的中级语言。Linux的标准Shell就是/bin/bash。
在/etc/passwd文件中,你们可以把这个数组理解为用户登入以后所拥有的权限。假如写入的是Linux的标准Shell,/bin/bash就代表这个用户拥有权限范围内的所有权限。诸如:
[root@localhost/]#vimetc/passwd
lizhouwei:x:1000:1000:lizhouwei:/home/lizhouwei:/bin/bash
比如:lizhouwei用户,它的登陆Shell是/bin/bash,这么这个用户就可以使用普通用户的所有权限。假如把lizhouwei用户的Shell更改为/sbin/nologin,这么这个用户就不能登入了,由于/sbin/nologin就是严禁登陆的Shell。假如我在这儿装入的系统命令,如/usr/bin/passwd,这么这个用户可以登陆,但登陆以后就只能更改自己的密码。
说明:在用户的Shell中不能随意写入和登录没有关系的命令,如ls,否则系统不会辨识那些命令,也就意味着这个用户不能登入。
影子文件/etc/shadow
这个文件中保存着用户的实际加密密码和密码有效期等参数。我们早已晓得这个文件的权限是000,所以除root用户外,其他用户是不能查看的,这样做有效地保证了密码的安全。数组之间使用":"作为分隔符。
第1数组
第2数组
第3数组
第4数组
第5数组
第6数组
第7数组
第8个数组
第9个数组
用户名称
密码
密码最后一次更改曰期
密码的两次更改间隔时间
(和第3个数组相比)
密码的有效期
(和第3个数组相比)
密码更改到期前的警告天数
(和第5个数组相比)
密码过期后的宽限天数
(和第5个数组相比)
帐号失效时间
保留
比如:lizhouwei:bIUmABK6YbB4k1w6Ai::0:99999:7:::
用户名称
第1个数组中保存的是用户名称,和/etc/passwd文件的用户名称相对应。
密码
第2个数组中保存的是真正加密的密码。在Linux的密码采用的是SHA512散列加密算法。假如用户密码是"!!"或"*",代表没有密码是不能登入。诸如:所有伪用户的密码都是"!!"或"*",代表没有密码是不能登入的。新创建的用户假如不设定密码,这么它的密码项也是"!!",代表这个用户没有密码,不能登入。
密码最后一次更改曰期
第3个数组是密码的更改日期,数值表示当前日期到1970年1月1日的天数,366代表的就是1971年1月1日。
密码的两次更改间隔时间(和第三个数组相比)
第4个数组是密码的两次更改间隔时间。这个数组要和第3个数组相比linux视频,也就是说密码被更改后多久不能再更改密码。假如是0,则密码可以随时更改。假如是10,则代表密码更改后10天之内不能再度更改这个密码。
密码的有效期(和第三个数组相比)
第5个数组是密码的有效期。这个数组也要和第三个数组相比,也就是说密码被更改后可以生效多少天。默认值99999,也就是27年,你们可以觉得永久生效。假如改为90,这么密码被更改90天以后就必须再度更改,否则该用户就不能登入了。我们在管理服务器的时侯可以通过这个数组强制用户定期更改密码。
密码更改到期前的警告天数(和第五个数组相比)
第6个数组是密码更改到期前的警告天数。这个数组要和第五个数组相比,就是密码到期前需提早几天更改。默认值是7,也就是说从密码到期前的7天开始,每次登入系统就会警告该用户更改密码。
密码过期后的宽限天数(和第五个数组相比)
第7个数组是密码过期后的宽限天数。也就是密码过期后,用户假如还是没有更改密码,这么在宽限天数内用户还是可以登入系统的;假如过了宽限天数,这么用户就难以再使用该密码登入了。天数假如是10,则代表密码过期10天后失效;假如是0,则代表密码过期后立刻失效;假如是-1,则代表密码永远不会失效。
帐号失效时间
第8个数组是用法的帐号失效时间。这儿同样要写时间戳,也就是用1970年1日1日进行时间换算。假如超过了失效时间,即使密码没有过期,用户也就失效,难以使用了。
保留
这个数组目前没有使用。
在Linux中,假如遗忘了密码,则可以启动步入单用户模式。这时既可以删掉/etc/passwd文件中的密码标示数组,也可以删掉/etc/shadow文件中的密码标示数组,都可以达到清空密码的目的
组信息文件/etc/group
这个文件是记录组ID(GID)和组名的对应文件。etc/passwd文件的第四个数组记录的是每位用户的初始组的ID
文件格式:
第1数组
第2数组
第3数组
第4数组
组名
组密码标志
组ID(GID)
组中的用户
比如:lizhouwei:x:1000:lizhouwei
组名
第1个数组是用户组的组名。
组密码标志
第2个数组是组密码标志数组。和/etc/passwd文件一样,这儿的"x"仅仅是密码标示,真正的加密然后的组密码保存在/etc/gshadow文件中。
不过,用户设置密码是为了验证用户的身分,并且用户组设置密码是拿来指定组管理员的,因为系统中的帐号可能会特别多,root用户可能没有时间进行用户的组调整,这时可以给用户组指定组管理员,假如有用户须要加入或退出某用户组,可以由该组的组管理员代替root进行管理。并且这项功能目前极少使用,我们也极少设置组密码。假如须要赋于某用户调整某个用户组的权限,则可以使用sudo命令替代。
组ID(GID)
第3个数组是用户组的ID,和UID一样,Linux系统是通过GID来区别不同的用户组的,组名只是为了易于管理员辨识。所以,在/etc/group文件中可以查看对应的组名和GID。
组中的用户
第4个数组表示的就是这个用户组中究竟包含了什么用户。须要注意的是,假如该用户组是这个用户的初始组,则该用户不会写入这个数组。也就是说,写入这个数组的用户是这个用户组的附加用户。例如lizhouwei组就是这样写的"lizhouwei:x:1000",并没有在第四个数组中写入lizhouwei用户,由于lizhouwei组是lizhouwei用户的初始组。假如要查询那些用户的初始组,则须要先到/etc/passwd文件中查看GID(第四个数组),之后到/etc/group文件中比对组名。
每位用户都可以加入多个附加组,而且只能属于一个个初始组。所以我们在实际工作中,假如须要把用户加入其他组,则须要添加附加组。通常情况下,用户的初始组就是在构建用户的同时完善的和用户名相同的组。
注意,/etc/passwd、/etc/shadow、/etc/group之间的关系为:先在/etc/group文件中查询用户组的GID和组名;之后在/etc/passwd文件中查找该GID是那个用户的初始组,同时提取这个用户的用户名和UID;最后通过UID到/etc/shadow文件中提取和这个用户相匹配的密码
组密码文件/etc/gshadow
这个文件就是保存组密码的文件。假如我们给用户组设定了组管理员,并给该用户组设定了组密码,这么组密码就保存在这个文件中,组管理员就可以借助这个密码管理者个用户组了。
文件格式:
第1数组
第2数组
第3数组
第4数组
组名
组密码
组管理员用户名
组中的附加用户
比如:lizhouwei:!!::lizhouwei
组名
第1个数组是用户的组名。
组密码
第2个数组就是实际加密的组密码。注意,对于大多数用户来说,这个数组不是空就是"!",代表这个组没有合法的组密码。
组管理员用户名
第3个数组表示这个组的管理员是那个用户。
组中的附加用户
第4个数组用于显示这个用户组中有什么附加用户。
用户模板目录/etc/skel/
此文件是一个用户创建的时侯一个模板,假如该/etc/skel文件夹有文件的话,使用useradd命令则会将/etc/skel/下的文件拷贝到新建用户的/home/用户名文件夹下
本文原创地址://q13zd.cn/lxtbzzdjmmmc.html编辑:刘遄,审核员:暂无