1、用户及组说明

Linux系统通过ID实现对用户及组的管理。使用账号、密码登录系统后,操作系统会将用户名转化为ID号进行判断该账号是否存在,并对密码进行匹配。Linux系统中,用户ID被称为UID,组ID被称为GID。UID为0,代表超级用户,默认root。1-499为系统预留,我们创建的普通用户ID从500开始。

Linux操作系统中组分为基本组以及附加组。一个用户同时仅可以加入一个基本组,但可同时加入多个附加组。默认在创建用户时,系统默认同时会创建一个同名的组(用户私有组),并设置用户加入该基本组中。

 

1.1账户分类

(1)超级用户:UID为0,默认为root,对系统有完整控制权限。

(2)普通用户:UID非0,普通用户分为系统用户及真实用户。

A、系统用户:UID1-499,系统预留使用。(部分软件调用系统用户后才可使用)

B、真实用户:UID500-65535或500-2的32次方减1。(默认500-60000)/etc/login.defs,查看UID默认值。

 

1.2组分类

(1)超级用户组:GID为0,属于超级用户组的成员,不具备系统管理员权限;

(2)系统分组:GID1-499,系统本身提供的某些服务;

(3)用户自定义组:GID500-65535(默认500-60000).

 

1.3用户、组相关文件

(1)/etc/passwd存放用户账号基本信息的配置文件

每行定义一个用户账号,有多少行就表示多少个账号,每一行各内容之间又通过”:”号划分了7个字段,这7个字段分别定义账号的不同属性。

各字段含义:

Eg:root:x:0:0:root:/root:/bin/bash

字段1:帐号名,用户登陆时使用的账户名称,唯一不可重复;

字段2:密码占位符:是否需要验证密码;有x系统会到/etc/shadow,查找密码进行验证;无x,不需要密码,但无法远程登录;

    字段3:UID;范围是0-65535;

    字段4:GID;范围是0-65535;当添加用户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组。

    字段5:用户说明;信息、名称、表示、解释。

    字段6:宿主目录;用户登陆后首先进入的目录,一般与"/home/用户名"这样的目录

    字段7:登录Shell;当前用户登陆后所使用的shell,在centos、rhel系统中,默认的shell是bash;如果不希望用户登陆系统,可以通过usermod
或者手动修改passwd设置,将该字段设置为/sbin/nologin 即可。出于安全考虑,大多数内置系统账户都是/sbin/nologin,这表示禁止登陆系统。

(2)/etc/shadow用户影子口令文件

存储Linux系统中用户的密码信息。 由于/etc/passwd 文件允许所有用户读取,易导致用户密码泄露,因此Linux系统将用户的密码信息从 /etc/passwd文件中分离出来,并单独放到了此文件中。该文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。

shadow文件的每一行内容,也是以冒号(:)作为分隔符,共9个字段。

各字段含义:

 Eg:mail:*:15980:0:99999:7:::

字段1:帐号名称

字段2:加密的密码,linux系统使用SHA512 散列加密算法。

注:该串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 "!"、"*" 或 "x" 使密码暂时失效。所有伪用户的密码都是 "!!" 或 "*",代表没有密码是不能登录的。

字段3:最近更改密码的时间;从1970/1/1到上次修改密码的天数

字段4:禁止修改密码的天数;从1970/1/1开始,多少天之内不能修改密码,默认值为0

字段5:用户必须更改口令的天数;密码的最长有效天数,默认值为99999

字段6:警告更改密码的期限;密码过期之前警告天数,默认值为7;在用户密码过期前多少天提醒用户更改密码

字段7:不活动时间;密码过期之后账户宽限时间 3+5;在用户密码过期之后到禁用账户的天数

字段8:帐号失效时间,默认值为空;从1970/1/1日起,到用户被禁用的天数

字段9:保留字段(未使用),标志

(3)/etc/group 用户组配置文件

/etc/group用户组配置文件,其文件权限也是644。内容包括用户与用户组,能显示用户归属哪个用户组,一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特性。如果某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;root用户组一般不要轻易将普通用户加入。

各字段含义:

bin:x:1:bin,daemon

字段1:组账户名称

字段2:密码占位符x;通常不需要设置该密码,由于安全原因,该密码被记录在/etc/gshadow中,因此显示为'x'。这类似/etc/shadow

字段3:组账户GID号,用户组ID

字段4:本组的成员用户列表;加入这个组的所有用户账号

(4)/etc/gshadow 用户组的影子文件

/etc/gshaow是/etc/group的加密文件,用户组的管理密码就是存放在这个文件。

各字段含义:

bin:::bin,daemon

字段1:组账号的名称。

字段2:加密后的密码字符串,这个字段可以空的或者!;如果是空的或有!,表示没有密码。

字段3:本组的管理员列表;这个字段也可为空;如果有多个用户组管理员,用,号分隔。

字段4:本组的成员列表;加入这个组的所有用户账户;列表中多个用户通过","分隔。

(5)/etc/login.defs

/etc/login.defs文件是用来定义创建用户时需要的用户的配置文件。如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限等。

默认参数选项:

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   #最小UID为500,也就是说添加用户时,UID是从500开始的

UID_MAX                 60000   #最大UID为60000

 

GID_MIN                   500   #GID依然是从500开始;同上面用户的情况

GID_MAX                 60000

 

CREATE_HOME     yes   #是否创建用户家目录,默认要求创建;可用-m参数来控制

 

USERGROUPS_ENAB yes     #删除用户同时删除用户组

 

MD5_CRYPT_ENAB yes     #MD5密码加密

 

2、用户与组相关命令

2.1用户管理

2.1.1用户创建useradd命令

描述:创建用户。

用法:useradd [选项] [用户名称] 

主要参数:

参数

功能

-c

设置账号描述信息,一般为账户全称

-d

设置账户家目录,默认在/home/用户名

-e

设置账户失效日期,格式YYYY-MM-DD

-g

设置账户基本组

-G

设置账户附加组,多个附加组中间用逗号分隔

-M

不创建家目录,一般与-s结合使用

-s

设置账户登录shell,默认为bash

-u

指定账户UID

-n

默认情况下,用户的用户组和用户的名称会相同,如果命令加了-n参数,就不会生成和用户同名的用户组

-r

用来建立系统账户。

 

Eg:

(1)创建用户test,设置账户描述,hello world

[[email protected] ~]# useradd test -c "hello world"

​Linux用户与组

(2)创建用户admin,全名administrator,家目录/home/admin/,账户失效日期2020.02.28,账户基本组root,附加组bin、adm。

[[email protected] ~]#useradd -c administrator -d /home/admin -e 2020-02-28 -g root -G bin,adm admin

​Linux用户与组

     (3)创建用户test1,无法登陆系统且没有加目录

[[email protected] ~]# useradd -s /sbin/nologin -M test1

 

2.1.2用户修改usermod命令

描述:用户信息修改。

用法:usermod [选项] [用户名称] 

主要参数:

参数

功能

-c

指定注释信息

-d -m

-d一般跟-m使用,既指定新的家目录位置,又移动其此前的文件至新的家目录当中

-e

指定账号失效时间

-g

指定所属的基本组(组名或GID)

-a -G GID

不使用-a选项,会覆盖此前的附加组;

-l

更改用户账号的登陆名称

-L

锁定用户账号

-s

指定用户登录Shell

-u

指定UID标志号

-U

解锁用户账号

Eg:

(1)修改test用户名为test1

[[email protected] ~]#usermod -l test1 test

 

(2)锁定test1账户

[[email protected] ~]#usermod -L test1

 

2.1.3用户删除userdel命令

描述:删除用户。

用法:usedel [-r] [用户名称] 

主要参数:

参数

功能

-r

删除账号及相关文件

Eg:

(1)删除test用户,但不删除账户相关文件

[[email protected] ~]#userdel test

(2)删除test用户,同时删除账户相关文件

[[email protected] ~]#userdel -r test

 

2.2组管理

2.2.1创建组账户groupadd命令

描述:创建组帐户。

用法:groupadd [选项] [组账户名称] 

主要参数:

参数

功能

-g gid

指定组ID号

-o

允许组ID号,不必唯一

-r

添加系统组,低于499系统账户

Eg:

(1)创建test组

[[email protected] ~]# groupadd test

 

(2)创建GID为50000的test1组

[[email protected] ~]# groupadd -g 50000 test1

 

2.2.2组账户修改groupmod命令

描述:组帐户修改。

用法:groupmod [选项] [组账户名称] 

主要参数:

参数

功能

-g gid

修改组ID号

-n 新组名

修改组名称

Eg:

(1)修改test组名称为test1

[[email protected] ~]# groupmod -n test1 tset

 

(2)修改test1组的组ID为49999

[[email protected] ~]# groupmod -g 49999 test1

 

2.2.3组账户删除groupdel命令

描述:组帐户删除。

用法:groupdel [组账户名称] 

Eg:

(1)删除test组

[[email protected] ~]# groupdel tset

 

2.3用户密码管理

2.3.1 passwd命令

描述:修改账户认证信息。

用法:passedl [选项] [账户名称] 

主要参数:

参数

功能

-l

锁定账户,仅root用户可用

--stdin

从文件或管道读取密码

-u

解锁账户

-d

快速清空账户密码,仅root可使用此选项

-e

终止用户密码

-n 天数

设置该用户修改密码后,多长时间不能再次修改, /etc/shadow 文件中各行密码的第 4 个字段

-x 天数

设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段

-w 天数

置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段

-i 日期

设置用户密码失效日期,对应 /etc/shadow 文件中各行密码的第 7 个字段

Eg:

(1)设置test用户密码

[[email protected] ~]#passwd tset

 

(2)设置test的密码为“123456”

[[email protected] ~]#echo “123456” |passwd --stdin test

 

(3)锁定test用户

[[email protected] ~]#passwd -l tset

 

(4)解锁test用户

[[email protected] ~]#passwd -u tset

​Linux用户与组

 

相关文章: