码迷,mamicode.com
首页 > 其他好文 > 详细

用户、组以及相关文件说明

时间:2014-07-02 11:52:41      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:uid gid /etc/passwd /etc/shadow /etc/group /etc/gshadow

用户分类:

管理员:root用户,UID为0

系统用户:UID范围1-499

一般用户:UID范围:500-60000


组分类:

基本组或私有组:创建用户时,如果没有为其指定所属的组,则系统默认会创建一个与用户名同名的组。

附属组:默认组以外的其他组。


当一个用户执行程序的时候,系统会判断当前用户有没有权限执行这个程序,如果没有权限执行,则启动不了该程序。如果有权限执行,则执行后该程序会产生一个或多个进程,该进程的权限就是执行该程序的用户的权限,因此进程的属主和属组就是该用户的属主和属组。当该进程访问一个对象的时候,会判断该进程的属主与属组是否与要访问的对象的属主和属组一样,如果属主一样,则具有要访问对象的属主的权限,如果属组相同,则具有要访问对象的属组的权限,如果都相同,则同时具有该权限,如果都不相同,则具有Others的权限。


示例:

程序:/bin/ls

程序的权限:-rwxr-xr-x 1 root root 117024 Apr 17  2012 /bin/ls

用户:tom 

组:tom

对象:drw-r--r-- 1 root root      0 Jun 30 21:59 a123


当用户tom想执行/bin/ls这个程序时,系统会判断tom是否有权限执行/bin/ls,而ls这个程序的属主和属组都是root,而tom用户的属主和属组都是tom,因此当tom执行ls时,就会具有others的权限,而ls这个程序的others的权限是rx,因此tom可以执行ls,执行后会产生一个进程,该ls进程的属主和属组就是tom,当tom使用ls访问对象a123时,要和对象的属组和属主进行比较,因此对于a123来说,只能查看ls列出a123目录里面的文件,不能使用ls -l列出该目录下的文件或目录的详细信息。


1. /etc/passwd文件格式说明:

格式:

account:password:UID:GID:GECOS:directory:shell

各个字段的说明:

account:用户的名称。

password:用户的加密密码,可以是*或x。如果是x,则是一个占位符,真正的密码位于/etc/shadow这个影子文件中。

UID:用户的UID

GID:用户的基本组的GID。附属组的信息存放在/etc/group里面。

GECOS:用户的注释信息,如用户的全名,用户的家庭住址等等。

directory:用户的家目录。

shell:用户在登录系统的时候所运行的shell。如果为空,则为/bin/sh即/bin/bash。如果设置为不存在的shell,则用户无法通过login登录系统。当设置为/sbin/nologin时,用户也无法登录系统,因此系统用户的默认shell都是/sbin/nologin。


查看系统中的合法shell:

cat /etc/shells或者是chsh -l

示例:

[root@Server3 ~]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
[root@Server3 ~]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
[root@Server3 ~]#


2. /etc/shadow文件说明

shadow文件存放是系统中的账户的密码信息以及账户的老化信息。该文件采用冒号(:)作为分隔符,分为9个字段,格式如下:

login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field

示例:

[root@Server3 tmp]# grep ‘frame‘ /etc/shadow
frame:$6$raWrlosK$jwlpWIiYAfMLOreKEXsMwvbwieNsG.vGl72KYf.stzQCQwMDayhtCTl/B.Apjn/UlyLBTZcbvmjNOL1vhqMTd0:16247:0:99999:7:::
[root@Server3 tmp]#

login name:登录名,存在于系统中的有效的用户名。在上述示例中,登录名为frame。

encrypted password:在加密密码里面,分为如下的几个部分,

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

该部分的格式如下:

$id$salt$encrypted
              ID  | Method
              ---------------------------------------------------------
              1   | MD5
              2a  | Blowfish (not in mainline glibc; added in some
                  | Linux distributions)
              5   | SHA-256 (since glibc 2.7)
              6   | SHA-512 (since glibc 2.7)
encrypted的长度:
       MD5     | 22 characters
       SHA-256 | 43 characters
       SHA-512 | 86 characters

第一部分:表示的是采用的加密方式。如果$后是1,则表示的是使用MD5方式加密的,如果是2,则表示

的是使用的Blowfish加密算法,如果是5,则表示的使用的SHA256加密算法,如果是6,则使用的是

SHA512加密算法

加密方法:对称加密和非对称加密。

    对称加密:加密和解密使用相同的密码。

    非对称加密:也称为公钥加密。在非对称加密中,每个密码都是成对出现的,一个为私钥(private key或者是secret key),一个为公钥(public key),公钥加密,私钥解密。

    单向加密:也成为散列加密。可以由数据取得密文,反之不能以密文取得数据。提取数据特征码,每一个数据的特征码都是唯一的,可以用于数据校验,校验数据是否遭到破坏。计算一个文件的特征码,可以用md5sum。

示例:

[root@Server3 tmp]# md5sum issue 
bbee69205bff2d11233b02a8f80ba4fd  issue
[root@Server3 tmp]# echo a >> issue 
[root@Server3 tmp]# md5sum issue 
f80ac7948edb06fa27b1a0ddbe09d3af  issue
[root@Server3 tmp]# 
说明:当往issue文件中增加一个字符a时,重新计算其特征码时,所产生的结果差别很大,这个也就是单向加密的一个特征,称为雪崩效应。初始结果的微小改变可以引起结果的巨大差异。

常用的单向加密算法有:MD5和SHA1。

MD5(Message Digest)为128位的定长输出。

SHA1(Secure Hash Algorithm)为160位的定长输出。

SHA256和SHA512:则表示为256和512位的加密算法。

第二部分:称为salt,为8字节的字符串,为随机生成的。在计算密码的时候,是把这部分也加进去计算的。如果salt和密码都一样,则加密出来的结果才一样,如果仅仅是密码一样,而salt不一样,则加密出来的结果也不一样。

当用户登录系统的时候,先将salt加进去,然后使用相同的算法,对用户输入的密码进行加密,然后和第三部分进行比较,判断是否相同,相同则密码一样,否则不一样。

第三部分:就是用户的密码。

在encrypted password中,如果是*,则表示该用户不允许登录,如果是!则表示该用户没有密码,NP也表示没有密码,即No Password,如果不想让一个用户登录系统,可以在该字段的前面加上!!即可,!!表示的是该用户被锁定,LK也可以表示账户被锁定(LocK)

date of last password change:上一次密码修改的时间距离1970年1月1日的天数。如果该字段为空,则表示关闭密码老化的特性。如果为0,则表示用户下一次登录系统时,必须要修改密码。

minimum password age:两次修改密码的最小时间间隔,密码最短使用期限。如果是0或空,则意味着可以随时修改密码。

maximum password age:密码最长使用期限。意味着该时间到期后,用户必须要修改自己的密码。用户下次登录的时候,会询问用户是否要修改密码。

password warning period:提前多少天警告用户口令将过期。如果为0,则密码即将过期时,不会提示用户修改密码。

password inactivity period:密码过期后多少天,用户依然可以使用该密码登录,但是登录后系统会强制用户修改密码。如果该时间到期后用户没有修改密码,则该密码将失效。

account expiration date:账户过期时间,也是距离1970年1月1日起的天数。账户过期和密码过期是不一样的,账户过期意味着用户不能使用该账户登录,密码过期则意味着用户不能使用该密码登录。如果是空,则意味着该账户永远不会过期.

reserved field:保留供将来使用。


3. /etc/group

格式:

group_name:passwd:GID:user_list

group_name:组名

passwd:组密码

GID:组的GID

user_list:用户列表,用逗号隔开。


示例:

daemon:x:2:bin,daemon


4. /etc/gshadow

格式:

group name:encrypted password:administrators:members

group name:组名

encrypted passwd:加密后的组密码

administrators:组管理员

members:组成员列表,多个组成员之间用逗号分隔。

示例:

mail:::mail,postfix


本文出自 “HeZhang” 博客,请务必保留此出处http://hezhang.blog.51cto.com/1347601/1433335

用户、组以及相关文件说明,布布扣,bubuko.com

用户、组以及相关文件说明

标签:uid gid /etc/passwd /etc/shadow /etc/group /etc/gshadow

原文地址:http://hezhang.blog.51cto.com/1347601/1433335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!