加载中...
linux-users
发表于:2023-04-23 | 分类: linux
字数统计: 2.5k | 阅读时长: 8分钟 | 阅读量:

用户管理

Linux 是一个多用户多任务的服务器操作系统,多用户指的是可以在系统上建立多个用户,这些用户可以在同一时间登录同一个系统执行各自不同的任务,互不影响。

三种用户角色

  • 超级用户: 拥有对系统的最高管理权限,默认是root用户.
  • 普通用户: 只能对自己目录下的文件进行访问和修改,具有登录系统的权限
  • 虚拟用户: 也叫伪用户,不能登录系统。他们的存在主要是为了方便系统管理,满足相应的系统进程对文件属主的要求。

用户管理文件/etc/passwd

Linux 系统中,用户的信息被存放在 /etc/passwd 文件中,系统中的每一个合法用户都会在该文件中有一条记录。由于所有用户对/etc/passwd这个文件均有读取的权限,因此密码信息并未保存在该文件中,而是保存在了/etc/shadow文件中。
/etc/passwd 文件每一行记录的格式如下
passwd.png

名称 描述
用户名 用户登录系统的时候使用的用户名
密码加密保护 展示用户是否使用密码保护 X代表使用密码保护,密码存放在 /etc/shadow 中
用户ID (UID) 系统内部用来标识用户的id, 每个用户唯一
主要组ID(GID) 系统内部用来标识用户所属组的id,每个用户组唯一(这里指主用户组)
注释 为了方便管理该账户所加入的描述信息
用户主目录 也叫用户家目录,是用户登录系统后所进入的目录
shell 程序 指定该用户登陆后所使用的shell 程序地址,若为 /sbin/nologin 则表示该用户无法登录系统

用户管理文件 /etc/shadow

Linux 系统为了加强系统安全性,专门提供了一个文件进行密码管理,他就是 /etc/shadow。这个文件对于一般用户是不可读的,只有root用户才能够读取
/etc/shadow 文件每一行记录的格式如下
shadow.png

名称 描述
用户名 改密码记录属于哪个用户
加密的密码 加密后的密码密文
最后一次修改密码时间 自1970.01.01到用户最后一次修改密码的天数
最小时间间隔 自1970.01.01到用户可以更改密码的天数(0表示随时可以变更)
最大时间间隔 自1970.01.01到用户必须更改密码的天数(99999表示永不过期)
警告时间 在密码过期多少天之前提醒用户更新,默认是7天
不活动时间 用户密码过期后到禁用账户的天数
失效时间 自1970.01.01起,到账户被禁用的天数
标志 保留位

创建用户

使用 useradd 命令创建用户。
命令格式: useradd [选项] 用户名
可选项如下:

选项 功能说明
-d 指定用户主目录
-g 指定用户组
-m 若主目录不存在,则创建
-M 不创建主目录
-s 指定登录时使用的Shell类型,默认为/bin/bash
-c 设置对该账号的注释说明文字
-r 创建系统账号(用户ID小于1000,从999起按照递减的顺序创建),默认不创建对应的主目录
-u 手工指定新用户的ID值,该值必须唯一,且大于999。

用户登录密码

使用 paswd 命令来管理用户的登陆密码。 一般用户必须要设置密码以后才可以登录系统。其中,root用户有权限设置指定用户的密码,普通用户只能修改自己的密码。
passwd 命令不加用户名代表设置当前用户密码
命令格式: passwd [选项] [用户名]
其中命令可选项如下:

选项 功能说明
-l 锁定用户密码
-u 解锁用户密码
-S 查询用户密码状态
-d 删除用户密码

修改用户属性

修改用户属性使用usermod命令,对于已经创建好的用户可以使用usermod来修改用户的用户名、主目录、所属组、shell 等属性。
命令格式: usermod 选项 用户名
选项如下:

选项 选项描述
-c 备注 修改用户的备注信息
-d 主目录 修改用户的主目录(登录目录)
-e 有效期限(单位 天) 修改账户得到有效期
-f 缓冲天数(单位 天) 修改账户密码过期后多少天关闭账户
-g 群组 修改账户的所属组(主组)
-G 群组 修改账户的附加群组
-l 用户名 修改账号的用户名
-L 锁定账号的密码 使密码无效
-s shell 地址 修改用户所使用的shell
-u uid 修改用户的uid
-U 解除密码锁定

删除用户

删除用户使用userdel命令,若是直接使用该命令删除用户默认是保留用户的主目录的,若要不保留用户主目录则需要加选项-r
命令格式: userdel [-r] 用户名

用户与用户组

为什么会有组的概念: Linux 中对文件的权限管理的非常严格。但由于某些原因,我们希望一部分人都可以访问某一个文件,而另一部分人则不可以访问该文件。我们就可以将这两部分人分成两个组,让其中一个组有这个文件的访问权限即可。
用户和组的对应关系有: 一对一、一对多、多对一和多对多。

  • 主要组(主组): 每个用户有且只有一个主组(/etc/passwd文件中记录的组)
  • 附属组(补充组): 用户可以是零个或多个附属组成员(一般用来满足访问系统中其他的文件资源)

用户组配置文件 /etc/group

Linux 使用 /etc/group 文件来存放系统的组信息, 其中每一行记录对应一个用户组信息。
每一行组记录由四个字段组成,各个字段信息如下:
group.png

字段名称 字段描述
组名 用户组的名称
组口令 用户组的口令 X表示口令是被 /etc/gshadow文件保护
组id(GID) 系统内部用来标识组的ID
组成员 属于该组的成员

用户组配置文件 /etc/gshadow
/etc/gshadow 文件用来存储组的口令、管理员和用户等信息,其格式如下:

字段名称 字段描述
组名 用户组的名称
组口令 用户组的加密后密码
组的管理员 该组归哪个用户管理
组成员 属于该组的成员

创建用户组

创建用户组使用 groupadd 命令。
命令格式: groupadd [选项] 组名称
常用的选项是 -r 表示创建系统用户组

修改用户组属性

修改用户组属性使用命令 groupmod
命令格式: groupmod [选项] 组名
选项有两个:
-n 修改组名
-g 修改组标识号

管理组中成员

使用gpasswd 命令来管理组中的成员
命令格式: gpasswd [选项] 用户名 组名
选项如下:

选项 功能说明
-a 添加用户到组。
-d 将用户从组中删除。
-A 设置用户为组管理员。

删除用户组

删除用户组使用groupdel 命令
命令格式: groupdel 组名
注意: 被删除的用户组不能是某一个用户的主组,若是某个用户的主组则不能被删除,需要先修改该用户的主组或者删除该用户后才可以删除用户组。

知识拓展

查看用户ID

查看用户id 使用id命令,该命令用来展示用户的UID\GID以及所属群组的列表
命令格式: id [选项] [用户名]
若不输入用户名,则表示显示当前用户信息
可选选项如下:

选项 功能说明
-g 显示用户所属群组的ID
-G 显示用户所属附加群组的ID
-u 显示用户ID

查看用户所属组

查看用户所属组使用groups命令,该命令可展示出指定用户的所有组信息
命令格式: groups [用户名]
若不指定用户名则表示展示当前用户的所有组。

查看当前登录用户

查看当前登录用户使用whoami 命令,他与 id -un 是一样的
命令格式: whiami
相关命令: w who (请自行查看)

查看登录历史

查看登录历史使用last命令
命令格式: last

修改用户口令有效期限

命令格式: chage [选项] 用户名
可选项如下:

选项 功能说明
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码
-W 用户密码到期前,提前收到警告信息的天数
-M 密码保持有效的最大天数
-E 账号到期的日期。过了这天,此账号将不可用
-d 上一次更改的日期
-i 停滞时期。如果一个密码已过期这些天,那么此账号将不可用
-l 列出当前的设置。由非特权用户来确定他们的密码或账号何时过期

修改用户注释

命令格式: chfn [选项] [用户名]
可选项如下:

选项 功能说明
-f 设置真实姓名。
-h 设置家中的电话号码。
-o 设置办公室的地址。
-p 设置办公室的电话号码。

修改用户 shell

命令格式: chsh [选项] [用户名]

下一篇:
linux-基础命令
本文目录
本文目录