前言:
在用户管理,组管理过程中,最基本的四个文件就是/etc下面的passwd,shadow,group,gshadow。他们记录了与用户和组相关的信息。是学习和深入了解用户,组的基本。
除了这些基本的配置文件 还有与初始化相关的配置文件。定义用户添加时初始状态的配置文件/etc/default/useradd。
以及用户家目录的内容文件参考目录/etc/skel。和与用户,组基本属性默认设置的配置文件/etc/login.defs。接下来就对这些配置文件进行详细介绍。
/etc/passwd:
例:root:x:0:0:root:/root:/bin/bash
1.帐号名称:用来提供给对数字不太敏感的人类使用来登入系统的。需要对呀UID。例如root的UID对应的就是0(第三位)
2.密码:早起Unix系统的密码是放在这一栏的。但是因为passwd的特性是所有程序逗都能读取,这样很容易造成密码资料被窃取,因此后来就将这个栏位的密码资料改进到/etc/shadow中了。所以这里会看到一个x。
3.UID:这个就是标识用户的识别码。通常,centos6中,id为0是系统管理员,即只要uid是0就是管理员,就散用户名是root,对应的uid不是0,那么它也不是系统管理员。1到499是系统用户,500到60000是普通用户,在centos 7中,系统帐号的id是1到999,普通用户的id是1000到60000。
4.GID:这个与/etc/group有关。用来标识一个用户组。
5.使用者资料说明栏:用来说明这个帐号的意义,比如:全名,办公室的房间号,办公室电话,家里电话等等
6.家目录:指明用户的家目录,以上面为例,root的家目录就是/root。所以当root登录后就立刻跑到/roo目录里面,默认普通用户的家目录在/home/yourname
7.shell:指定我们登录用户后使用的shell类型,特别要注意的/sbin/nologin这个shell,可使用户不能登录。
/etc/shadow:
例:root:$6$wtbCCce/PxMeE5wm$KE2IfSJr.YLP7Rcai6oa/T7KFhO…:16559:0:99999:7:::
1.帐号名称:这里的名称与/etc/passwd里的帐号名称对应。
2.密码:这个栏里才是用户正真的密码,而且是经过加密的密码。并且很难被破解出来,虽然很难但不等于不会,所以此文件的权限是只有root可以读写。
3.最近修改密码的日期:这个栏位记录了更改密码那一天的日期。16559表示修改密码那天距离1970年1月1日的天数,
4.密码不可被更改的天数(与第三栏相比):标识这个密码被修改后需要经过几天才可以在此被修改,如果是0的话,表示密码可以被随时修改。如果设置为10天,标识你设置完密码后的10天内都不能修改密码。
5.密码需要重新变更的天数:(与第三栏相比):这个栏位用来指定在最近一次修改密码后,在多少年数内需要在此的变更密码才行。你必须在这个天数内重新设定你的密码,否则这个帐号的密码将会过期。
6.密码需要变更期限前的警告天数:(与第五栏相比)当账号的密码有效期限快要到的时候,系统会根据这个栏位的设定,发出警告言论给这个帐号,提醒他再过n天密码就要过期了,如上面的例子,则是密码到期之前的7天之内,系统会警告该用户。
7.密码过期后的帐号宽限时间(密码失效日):(与第五栏相比)密码有效日期为第三栏更新日期加上第五栏的重新变更日期,过了该期限后使用者依旧没有更改密码,那该密码就算过期了。虽然密码过期但是该帐号还是可以用来进行其他的工作,包括登入系统取得bash。不过如果密码过期了,那当你登入系统时,系统会强制要求你必须重新设定密码才能登入继续使用。该栏目的表示,在密码过期几天后,如果使用者还是没有登入更改密码,那么该帐号的密码就会失效,即该帐号再也无法使用该密码登入了。要区分密码过期和密码失效
8.帐号失效日期:这个日期跟第三栏一样,都是使用1970年来的总天数设定。这个栏标识,这个帐号在此栏规定的日期之后,将无法再使用。就是所谓的帐号失效,此时无论你的密码是否过期,这个帐号就不能在被使用,这个栏位会被使用通常应该在收费服务的系统中,你可以规定一个日期让这个帐号不能再使用了。
9.保留:最后一栏是保留的,看以后有没有新功能加入。
/etc/default/useradd
GROUP=100 <==预设的群组
HOME=/home <==预设的家目录所在目录
INACTIVE=-1 <==密码失效日,在shadow内的第7栏
EXPIRE= <==帐号失效日,在shadow内的第8栏
SHELL=/bin/bash <==预设的shell
SKEL=/etc/skel <==使用者家目录的内容资料参考目录
CREATE_MAIL_SPOOL=yes <==是否主动帮使用者建立邮件信箱(mailbox)
GROUP=100:新建帐号的初始群组为GID是100的群组,但centos中并不是这样。centos采用私有群组机制,在帐号创建时,系统默认会创建一个与帐号名一样的群组给使用者作为初始去租。这种群组这顶机制会比较有保密性,因为每个用户都有自己的群组,而家目录的权限设定为,只有自己和进入自己的家目录。所以此机制不会参考GROUP=100这个设定值。
HOME=/home:用户家目录的基准目录,即用户的家目录通常是与帐号同名的目录,这个目录将会放在次设定值的目录后。
INACTIVE=-1:密码过期后是否会失效的设定值,我们在shadwo配置文件中提过,第七栏位的设定值将会影响到密码过期后,在多久时间内还可以使用旧密码登入。这个项目就是在指定该天数!如果是0代表密码过期立刻失效,如果是-1则是代表密码永远不会失效。如果是30,则代表过期30天后才会失效。
EXPIRE=:帐号失效的日期,就是shadow内的第八栏,你可以直接设定帐号在哪个日期后就直接失效,并且和密码的问题无关。
SEELL=/bin/bash:默认使用的shell名称,系统默认的shell就写在这里,假如你的服务器不需要用户登录系统取得shell,那么就可以将这里设定为/sbin/nologin,这样,新建的使用者默认就无法登入了。
SKEL=/etc/skel:用户家目录参考的基准目录,用户刚创建后家目录内就有各种配置文件,都是有/etc/skel所复制过去的。假如你想用户刚建立就有某个目录,就把该目录添加到/etc/skel中,这样每次用户被创建,此目录就会被复制到家目录下。
CREATE_MAIL_SPOOL=yes:建立使用者的邮箱。
/etc/skel/
就是上面提到的,用户家目录的内容参考目录,并且有以下配置文件。
.bash_logout:当每次退出系统(退出bash shell)时,执行此文件
.bash_profile:每个用户都可使用该文件输入专用于自己的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件
.bashrc:该文件包含用户bash shell的信息,当登录时以及每次打开新的shell时,该文件被读取.
/etc/login.defs
MAIL_DIR /var/spool/mail <==使用者预设邮件信箱放置目录
PASS_MAX_DAYS 99999 <==/etc/shadow内的第5栏,多久需变更密码日数
PASS_MIN_DAYS 0 <==/etc/shadow内的第4栏,多久不可重新设定密码日数
PASS_MIN_LEN 5 <==密码最短的字元长度,已被pam模组取代,失去效用!
PASS_WARN_AGE 7 <==/etc/shadow内的第6栏,过期前会警告的日数
UID_MIN 1000 <==使用者最小的UID,意即小于1000的UID为系统保留
UID_MAX 60000 <==使用者能够用的最大UID
SYS_UID_MIN 201 <==保留给使用者自行设定的系统帐号最小值UID
SYS_UID_MAX 999 <==保留给使用者自行设定的系统帐号最大值UID
GID_MIN 1000 <==使用者自订群组的最小GID,小于1000为系统保留
GID_MAX 60000 <==使用者自订群组的最大GID
SYS_GID_MIN 201 <==保留给使用者自行设定的系统帐号最小值GID
SYS_GID_MAX 999 <==保留给使用者自行设定的系统帐号最大值GID
CREATE_HOME yes <==在不加-M及-m时,是否主动建立使用者家目录?
UMASK 077 <==使用者家目录建立的umask ,因此权限会是700
USERGROUPS_ENAB yes <==使用userdel删除时,是否会删除初始群组
ENCRYPT_METHOD SHA512 <==密码加密的机制使用的是sha512这一个机制!
原文地址:http://xiaofengfeng.blog.51cto.com/8193303/1870408