Linux中的账号管理(上)

一背景

 Linux    一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响,例如某台linux服务器上有4个用户,分别是rootwwwftpmysql,在同一时间内,root用户可能在查看系统日志,管理维护系统,www用户可能在修改自己的网页程序,ftp用户可能在上传软件到服务器,mysql用户可能在执行自己的SQL查询,每个用户互不干扰,有条不紊的进行着自己的工作,而每个用户之间不能越权访问,比如www用户不能执行mysql用户的SQL查询操作,ftp用户也不能修改www用户的网页程序,因此可知,不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

二、用户user和组group的简介

 

1)、用户user

Linux用户:Username/UID

管理员:root, 0

普通用户:1-65535

1、系统用户(不需要登入,系统服务或者后台进程使用):

UID1-499CentOS6,  UID1-999 CentOS7

    对守护进程获取资源进行权限分配

2、登录用户:500CentOS6+, 1000+CentOS7

3、交互式登录 

   如果用户指定的是nologin,用户就不能登入,就给服务使用

2)组group


  些用户或组的集合(linux中不支持组的嵌套),方便用户的管理


      例如:有文件file1 希望用户wang,zhang, li对他有readwrite的权限,文件file2希望这三     个用户多他有read的权限,可以把这三个用户加入一个group,以后就可以直接对group授权,file1     read write group;file2 read group

 

Linux组:Groupname/GID

    管理员组:root, 0

    普通组:

1、系统组:1-499centos6,1-999centos7

2、普通组:500+(centos6),1000+(centos7)

    Linux中允许用户和组的名字一样,甚至id也可以一样

    当新建一个用户的时候,会自动建一个和他同名的组

 

    Linux组的类别:

     1、主要组:用户必须属于一个且只有一个主

     2、私有组:组名同用户名,且仅包含一个用户

     3、附加组(辅助组):一个用户可以属于零个或多个辅助组

 

三、与用户有关的文件/etc/passwd/etc/shadow

 a/etc/passwd文件:

      下面是/etc/passwd文件的部分输出:

    1.png

                                                        

       下面是每个字段的详细含义:

login name:登录用名(wang

passwd:密码(x)

UID:用户身份编号(1000)

GID:登录默认所在组编号(1000)

GECOS:用户全名或注释

home directory:用户主目录(/home/wang)

shell:用户默认使用shell (/bin/bash)

 

b/etc/shadow文件:

下面是/etc/passwd文件的部分输出:

 2.png

下面是每个字段的详细含义:

登录用名

用户密码:一般用sha512加密

197011日起到密码最近一次被更改的时间

密码再过几天可以被变更(0表示随时可被变更)

密码再过几天必须被变更(99999表示永不过期)

密码过期前几天系统提醒用户(默认为一周)

密码过期几天后帐号会被锁定

197011日算起,多少天后帐号失效。

 

四、与组有关的文件/etc/group/etc/gshdow

      a/etc/group

       4.png

群组名称:就是群组名称

群组密码:通常不需要设定,密码是被记录在/etc/gshadow

GID:就是群组的ID

以当前组为附加组的用户列表(分隔符为逗号)

 

       b/etc/gshadow

        5.png

群组名称:就是群组名称

群组密码:

组管理员列表:组管理员的列表,更改组密码和成员

以当前组为附加组的用户列表:(分隔符为逗号)

 

五./etc/login.defs文件

    用来定义创建一个用户时的默认设置,比如指定用户的UIDGID的范围,用户的过期时间、是否需要创建用户主目录等等。

 

下面是centos6下的/etc/login.defs文件,简单介绍如下:

MAIL_DIR        /var/spool/mail

当创建用户时,同时在目录/var/spool/mail中创建一个用户mail文件

PASS_MAX_DAYS   99999

 #指定密码保持有效的最大天数

PASS_MIN_DAYS   0

表示自从上次密码修改以来多少天后用户才被允许修改口令

PASS_MIN_LEN    5

指定密码的最小长度

PASS_WARN_AGE   7

表示在口令到期前多少天系统开始通知用户口令即将到期

UID_MIN                   500

指定最小UID500 ,也就是说添加用户时,用户的UID 500开始 UID_MAX                 60000

指定最大UID60000

GID_MIN                   500

指定最小GID500,也就是添加组时,组的GID500开始。

GID_MAX                 60000

指定最大GID60000

CREATE_HOME     yes

此项是指定是否创建用户主目录,yes为创建,no为不创建。

 

 

六./etc/default/useradd文件

当我们通过useradd命令不加任何参数创建一个用户后,用户默认的主目录一般位于/home下,默认使用的shell/bin/bash,这是为什么呢,看看/etc/default/useradd这个文件的内容就完全明白了

 

默认值设定:/etc/default/useradd文件中

显示或更改默认设置:

useradd-D

useradd–D-s SHELL

6.png

# useradd defaults file

GROUP=100  

HOME=/home  #此项表示将新建用户的主目录放在/home目录下

INACTIVE=-1 #此项表示是否启用帐号过期禁用,-1表示不启用

EXPIRE=     #此项表示帐号过期日期,不设置表示不启用

SHELL=/bin/bash  #此项指定了新建用户的默认shell类型

SKEL=/etc/skel  #此项用来指定用户主目录默认文件的来源,也就是说新建用户主目录下的      文件都是从这个目录下复制而来的

CREATE_MAIL_SPOOL=no

/etc/default/useradd文件定义了新建用户的一些默认属性,比如用户的主目录、使用的shell      等等,通过更改此文件,可以改变创建新用户的默认属性值

    7.png

七、总结

    这里简单介绍了用户和组的概念还有一些重要配置文件每个字段的含义,相关一些命令的使用下节介绍。

 

 

 

 

 

 

原创文章,作者:xiaoqing,如若转载,请注明出处:http://www.178linux.com/28143