用户管理操作
用户管理
Linux 是一个多用户、多任务的操作系统,具有很好的稳定性与安全性,在幕后保障 Linux系统安全的则是一系列复杂的配置工作。
将详细讲解文件的所有者、所属组以及其他人可对文件进行的读(r)、写(w)、执行(x)等操作,以及如何在 Linux 系统中添加、删除、修改用户账户信息。
Linux 系统的管理员之所以是 root,并不是因为它的名字叫 root,而是因为该用户的身份号码即 UID(User IDentification)的数值为 0。
在 Linux 系统中,UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。
关于UID号说明
UID号 | 用户身份 | 说明 |
---|---|---|
0 | 管理员 | 系统的管理员用户 |
1-999 | 系统用户 | 默认服务程序会有独立的系统用户负责运行,Linux系统为了避免因某个服务程序出现漏洞而被黑客提权到整台服务器,进而可以有效控制被破坏的范围, |
从1000开始 | 普通用户 | 由管理员创建的用于日常工作的用户 |
注意:UID是不能冲突的,由管理员创建的普通用户的UID默认是从1000开始的。
用户组(GID,group identification)
为了方便管理属于同一组的用户,Linux系统中引入了用户组的概念,通过使用用户组的号码,可以将多个用户加入到同一组中,从而方便为组中的用户统一规划权限或指定任务。
注意:在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。
useradd
用于创建新的用户
格式: useradd [参数] 用户名
可以使用 useradd 命令创建用户账户,使用该命令创建用户账户时,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。
常用参数
参数 | 作用 |
---|---|
-d | 指定用户的家目录 |
-e | 账户的到期时间 |
-u | 指定用户的默认UID |
-g | 指定一个初始的用户基本组(必须是已经存在的组) |
-G | 指定一个或者多个扩展的用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定该用户的默认shell解释器 |
groupadd
用于创建用户组
格式:groupadd [参数] 用户组名
为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。
usermod
用于修改用户的属性
格式:usermod [参数] 用户名
常用参数:
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | 参数-m与参数-d一起用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式:YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许用户登录系统 |
-s | 变更默认的shell解释器 |
-u | 修改用户的UID |
Linux 系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。
用户的信息保存在etc/passwd 文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用 usermod 命令修改已经创建的用户信息,诸如用户的 UID、基本/扩展用户组、默认终端等。
passwd
用于修改用户密码、过期时间、认证信息等。
格式:passwd [参数] [用户名]
普通用户只能使用 passwd 命令修改自身的系统密码,而 root 管理员则有权限修改其他所有人的密码。
root 管理员在 Linux 系统中修改自己或他人的密码时不需要验证旧密码,这一点特别方便。既然 root 管理员可以修改其他用户的密码,就表示完全拥有该用户的管理权限。
常用参数
参数 | 作用 | |
---|---|---|
-l | 锁定用户,禁止其登录 | |
-u | 解除用户,允许用户登录 | |
--stdin | 允许通过标准输入修改用户的密码,如echo "new password" \ | passwd --stdin username |
-d | 允许用户使用空密码登录系统 | |
-e | 强制用户在下次登录时修改密码 | |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
userdel
用户删除用户
格式为:userdel [参数] 用户名
如果我们确认某位用户后续不再会登录到系统中,则可以通过 userdel 命令删除该用户的所有信息。在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r 参数将其删除。
常用参数
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及家目 |
groupdel
删除组账户名,删除组帐号后,从/etc/group文件中将查不到相应的记录。
[root@localhost ~]# groupdel market
[root@localhost ~]# grep "market" /etc/group
注意:任何用户的基本组都不可以直接删除
用户账户文件
/etc/passwd
存储了系统中所有用户的基本信息,例如:用户名称、宿主目录、登录shell等基本信息。
每一行代表一个用户,每行由 7 个字段组成,字段之间用冒号(:
)分隔,以下是每个字段的含义:
- 用户名
- 密码占位符
- 用户ID
- 组ID
- 用户信息
- 用户家目录
- 登录的Shell
/etc/shadow
文件存储了用户密码和与密码相关的安全信息。
每一行对应一个用户,每行由 9 个字段组成,字段之间也用冒号(:
)分隔。以下是每个字段的含义:
- 用户名
- 加密密码
- 上次更改密码的日期
- 最小密码年龄
- 最大密码年龄
- 警告期限
- 宽限期
- 账号失效日期
- 保留字段
用户账户初始配置文件
文件来源新建用户帐号时,从 /etc/skel 目录中复制而来。
主要的用户初始配置文件有:
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
默认情况下,ta设置一些环境变量,执行用户的.bashrc文件。
- ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
- ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.。
- /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
- /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取
组账户文件
- /etc/group:保存组帐号基本信息
- /etc/gshadow:保存组帐号的密码信息
查询用户
id
查询用户的身份标识
groups
查询用户所属的组
finger
查询用户账户的详细信息
users、w、who
查询已登录到主机的用户信息
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论