Linux——用户账号管理(深入浅出)

Linux系统 是一个 多用户多任务分时 操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统,每个账号会有其密码和所属的用户组。
同时,管理员还可以通过账户对系统用户进行控制和跟踪。

一、用户介绍

在学习用户之前,我们首先需要了解三个最重要文件:

文件 说明
/etc/passwd 存放用户账号信息
/etc/shadow 存放用户加密口令等信息
/etc/group 存放用户组信息

Linux下的用户可以分为三类:超级用户系统用户普通用户,每个用户都有自己的ID,即为UID(User ID)
Linux——用户账号管理(深入浅出)_第1张图片

1. passwd文件介绍

/etc/passwd 文件每一行都表示的是一个用户的信息;一行有7个字段,每段信息用【 : 】号分割开。

[root@localhost ~]# vim /etc/passwd					#查看/etc/passwd文件

Linux——用户账号管理(深入浅出)_第2张图片
我们拿第一行做举例说明:
Linux——用户账号管理(深入浅出)_第3张图片

2. shadow文件介绍

为了保证系统的正常运行和安全,Linux系统对密码提供了更多一层的保护,即把加密后的密码重定向到另一个文件/etc/shadow。shadow文件也是以【 : 】号作为分隔符,每个用户信息有9个字段。

[root@localhost ~]# head -4 /etc/shadow				#查看/etc/shadow文件的前四行

在这里插入图片描述
在这里插入图片描述
详细说明:

  • 用户名:和/etc/passwd文件中相对应的用户名
  • 密码:存放加密后的口令(密码)。密码字段为 "*"表示用户被禁止登录,为 "!!" 表示密码未设置,为 "!" 表示用户被锁定。
  • 最后一次修改时间:用户最后一次修改口令的时间(从1970-1-1起计的天数)。
  • 最小时间间隔:口令保持有效天数的最多天数,即多少天后必须修改口令。
  • 警告时间:从系统提前警告到口令正式生效的天数。
  • 不活动时间:口令过期多少天后,该账号被禁用。
  • 失效时间:指示口令失效的绝对天数(从1970-1-1开始计算)
  • 标志:未使用。

3. group文件介绍

Linux系统关于组的信息存放在文件 /etc/group 中,group文件同样以 【 : 】号为分隔符,每个用户信息有四个四段。

[root@localhost ~]# vim /etc/group			#查看/etc/group文件

Linux——用户账号管理(深入浅出)_第4张图片
四个字段分别为:
组名:组的密码:GID:组成员

二、账户管理

1. 创建用户

命令:useradd /adduser (创建用户)

  • 使用该命 创建用户账户 时,默认的用户家目录会被存放在/home目录中,默认Shell解释器/bin/bash,而且默认会创建一个与该用户同名的基本用户组。

语法格式useradd [选项] 用户名

选项说明:

选项 说明
-c <备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-u (UID) 指定用户ID
-e <有效期限> 指定帐号的有效期限。
-g <群组> 指定用户所属的群组。
-G <群组> 指定用户所属的附加群组
-n 取消建立以用户名称为名的群组
-r 建立系统帐号。
-s (shell) 指定用户登入后所使用的shell。

示例:

#创建一个用户u1,UID为2000,同时创建与用户同名的初始用户组
[root@localhost ~]# useradd -u 2000 u1

#创建一个用户u2,设置基本用户组为u1组,且该用户不能被登录
[root@localhost ~]# useradd -g u1 -s /sbin/nologin u2

#id 用户名————可以查看用户信息和所属组信息
[root@localhost ~]# id u1   

2. 管理用户

1、usermod
usermod命令用于修改用户的属性
语法格式usermod [选项] 用户名

选项说明:

选项 说明
-c <备注> 修改用户帐号的备注文字
-d <登入目录> 修改用户登入时的目录
-e <有效期限> 修改帐号的有效期限
-f <缓冲天数> 修改在密码过期后多少天即关闭该帐号
-g <群组> 修改用户所属的群组
-G <群组> 修改用户所属的 附加群组
-l <帐号名称> 修改用户帐号名称
-s shell 修改用户登入后所使用的shell
-u UID 修改用户ID
-L 锁定用户密码,使密码无效
-U 解除密码锁定

示例:

#修改用户u2,修改登录shell为/bin/bash,并修改用户id为3000
[root@localhost ~]# usermod -s /bin/bash -u 3000 u2

#创建用户u4,注释为:my third user,设定此用户过期时间为 2020-12-31
[root@localhost ~]# useradd -c “my third user” -e 2020-12-31 u4

2、userdel
userdel命令用于删除用户
命令格式userdel [选项] 用户名

常用选项:

选项 说明
-f 强制删除用户
-r 删除用户时将用户主目录下的所有内容一并删除,同时删除用户的邮箱

示例:

#删除u4账户
[root@localhost ~]# userdel u4

三、密码设置

1、passwd
passwd命令用来更改账号的密码
语法格式passwd [选项] 用户名

常用选项:

选项 说明
-d 删除密码
-l 停止账号使用
-s 显示密码信息
-u 启用已被停止的账户
-x 设置密码的有效期
-i 过期后停止用户账号

2、chage
chage负责管理用户 密码时效 问题
语法格式chage [选项] 用户名

常用选项:

选项 说明
-m 密码可更改的最小天数。为0时代表任何时候都可以更改密码
-M 密码保持有效的最大天数
-W 用户密码到期前,提前收到警告信息的天数
-E 帐号到期的日期。过了这天,此帐号将不可用
-d 指定密码最后修改日期,为0表示强制在下次登录时更新密码

示例:

#修改用户u1密码信息:让这个用户u1下次登录系统时必须更改其密码
[root@localhost ~]# chage -d 0 u1

对u2用户进行设置,使得u2用户3天后才能设置密码
[root@localhost ~]# chage -m 3 u2

四、用户组管理

1、groupadd
groupadd命令用来添加用户
语法格式:groupadd [选项] 用户名

常用选项:

选项 说明
-g GID 指定新用户组的组标识号(GID),默认值是已有的最大的GID加1
-r 建立一个系统专用组,与-g不同的使用时,则分配一个1 ~ 499的GID

2、groupmod
groupmod命令用于修改组的属性
语法格式groupmod [选项] 用户组名

常用选项:

选项 说明
-g GID 为用户组指定新的组标识号(GID)
-n 新用户组 将用户组的名字改为新名字

3、groupdel
groupdel命令用于删除指定名称的用户组账号
语法格式groupdel 用户组名

4、gpasswd
gpasswd用于用户组添加用户、删除用户
添加用户:gpasswd -a 用户名 用户组名
删除用户:gpasswd -d 用户名 用户组名

示例:

#创建一个新的用户组g1,并将u1用户加入g1用户组中
[root@localhost ~]# groupadd g1
[root@localhost ~]# gpasswd -a u1 g1

5、有效用户组

当前用户创建文件时,这个文件继承的组权限是来自该用户的有效用户组

如何查看当前的有效用户组?
groups [组名] (默认是查看当前用户组)
注:排在一个的就是当前有效用户组

六、写在最后

管理员的工作中,相当重要的一环就是【管理账号】。因为整个系统都是你在管理,并且所有一般用户的账号申请,都必须要通过你得到协助才行,所以你就必须要了解一下如何管理好一个服务器主机的账号。

好了,如果对你有所帮助的话,就是对博主创作的最好支持!如有不足,还请雅正!

你可能感兴趣的:(Linux操作系统,linux,shell,运维,服务器)