目录
引言
用户与组管理
一、理解用户账户和组
二、Linux用户账户及其类型
三、超级用户权限
(一)Ubuntu的sudo命令
1、使用su命令临时改变用户身份
2、sudo命令用于切换用户身份执行
四、用户配置文件
(一)用户账户配置文件 /etc/passwd
(二)用户密码配置文件 /etc/shadow
(三)组账户的信息存放在 /etc/group 文件中
(四)组账户密码配置文件 /etc/gshadow
五、管理用户账户
(一)新建用户账户
(二)useradd和adduser区别
(三)查看用户账户
① 使用文本分析工具awk查看全部用户列表。
② 使用文本分析工具awk查看普通用户列表。
(四)管理用户账户密码
(五)用户账户维护
1、 修改账户
2、禁用和恢复账户
①使用passwd命令(被锁定用户的密码必须是使用passwd命令生成的)
②使用usermod命令
③ 直接修改用户账户配置文件
3、删除用户账户
4、创建组账户
5、修改组账户
6、删除组账户
7、查看组账户
8、查看组成员
9、gpasswd命令
10、管理组成员
总结
引言
在Linux系统中,用户与组的管理是维护系统安全和有效性的关键环节。随着网络环境的日益复杂,作为网络管理员,掌握用户和组的创建、配置及管理显得尤为重要。用户账户不仅是用户身份的标识,更是访问系统资源的基础。通过合理的组管理,可以简化权限的分配,提升管理效率。本项目将详细介绍如何利用命令行和图形工具进行用户与组的管理,以帮助管理员更加高效地维护系统安全。
用户与组管理
Linux是多用户多任务的网络操作系统,作为网络管理员,掌握用户和组的创建与管理至关重要。而在进行用户和组的管理时,如何有效地建立和管理用户和组将是网络管理员面临和必须处理好的一个重要问题。本项目将主要介绍利用命令行和图形工具对用户和组进行创建与管理等内容。
一、理解用户账户和组
用户账户是用户的身份标识。用户通过用户账户可以登录到系统,并且访问已经被授权的资源。
Linux系统下的用户账户分为三种种:普通用户账户、超级用户账户(root)、系统用户。
组是具有相同特性的用户的逻辑集合,在做资源授权时可以把权限赋予某个组,组中的成员即可自动获得这种权限。一个用户账户可以同时是多个组的成员,其中某个组是该用户的主组(私有组),其他组为该用户的附属组(标准组)。
二、Linux用户账户及其类型
三、超级用户权限
Linux的超级用户权限解决方案
许多系统配置和管理操作需要root权限。 Linux提供了特殊机制,让普通用户临时具备root权限。
- 用户执行su命令将自己提升为root权限
- 使用命令行工具sudo临时使用root身份运行程序,执行完毕后自动返回到普通用户状态。
(一)Ubuntu的sudo命令
1、使用su命令临时改变用户身份
su [选项] [用户登录名] 临时改变用户身份示例
-
sudo
允许你以超级用户身份运行命令。 -
su root
则是请求切换到root用户。 -
因为前面有
sudo
,所以系统会首先验证你当前用户的权限,并要求你输入你自己账户的密码。 -
如果密码正确,你将获得root用户的权限。
2、sudo命令用于切换用户身份执行
sudo [选项] <命令> ... 切换身份示例
用于以root用户的身份启动一个新的交互式shell。与普通的 sudo
命令相比,sudo -i
具有以下特点:
- 模拟登录:
sudo -i
会模拟root用户的登录环境,这意味着会加载root用户的环境变量和配置文件,类似于你直接登录到root账户时的状态。 - 保持会话:使用
sudo -i
后,你会进入一个新的shell会话,可以在这个会话中运行命令,直到你输入exit
退出这个会话。 - 简化操作:通过这种方式,你可以方便地执行多条需要root权限的命令,而不必每次都输入
sudo
。
四、用户配置文件
(一)用户账户配置文件 /etc/passwd
例:zhovyx:x:1000:1000:zhovyx:/home/zhovyx:/bin/bash
用户名:加密口令:UID:GID:用户描述信息:主目录:命令解释器
(二)用户密码配置文件 /etc/shadow
账户名:密码:最近一次修改:最短有效期:最长有效期:过期前警告期:过期日期:禁用:保留
(三)组账户的信息存放在 /etc/group 文件中
组名称:组口令(一般为空,用x占位):GID:组成员列表
(四)组账户密码配置文件 /etc/gshadow
组名称:加密后的组口令:组的管理员:组成员列表
五、管理用户账户
(一)新建用户账户
使用useradd或者adduser命令。
useradd sh adduser bash
useradd命令的格式是:useradd [选项] <username>
adduser会自动处理一些细节(如创建主目录、设置密码等)
(二)useradd和adduser区别
useradd
和 adduser
是用于在Linux系统中添加用户的命令,它们的主要区别在于实现方式、使用体验和默认行为。以下是更详细的比较:
① 实现方式
-
useradd
:这是一个低级命令,直接与系统用户数据库交互。它是一个二进制可执行文件,功能比较基础,执行时不会自动配置用户的环境。 -
adduser
:通常是一个 Perl 脚本,是useradd
的封装。它提供了更丰富的功能,自动完成许多配置步骤。
② 交互体验
-
useradd
:是一个非交互式命令,必须通过命令行参数指定所有选项。例如,用户的主目录、shell等都需要明确指定。如果不提供这些选项,命令将使用系统默认值。 -
adduser
:是一个交互式命令,执行时会提示用户输入必要的信息,如密码、全名等,提供了更友好的体验。
③ 默认行为
-
useradd
:默认情况下不会创建用户的主目录,也不会复制默认的配置文件。 -
adduser
:会自动创建用户的主目录,并复制系统的默认配置文件(如.bashrc
、.profile
等)。
④ 参数使用
useradd
:参数使用复杂,需要手动指定所有选项。例如:
useradd -m -d /home/newuser -s /bin/bash newuser
这里 -m
表示创建主目录,-d
指定主目录,-s
指定用户的默认shell。
adduser
:使用更为简单,通常只需执行:
adduser newuser
在讨论 useradd
和 adduser
的时候提到 bash
和 sh
主要是因为它们的交互方式和用户体验方面的不同,具体如下:
sh
(Bourne shell):是一个较老的shell,提供了基本的命令行界面和脚本功能,功能相对简单。bash
(Bourne Again SHell):是sh
的增强版本,支持更多功能,如命令补全、命令历史、数组等,提供了更丰富的交互体验。
在使用 adduser
时,因为它通常是一个更复杂的脚本,可能会用到 bash
以支持更多的功能和用户交互;而 useradd
则是一个直接的命令,主要用于基本的用户添加,不涉及复杂的用户交互。
(三)查看用户账户
在命令行中执行文件显示命令并通过管道操作使用grep命令来查找指定用户账户。
cat /etc/passwd | grep zhovyx
cat
:这是一个用于显示文件内容的命令。它的全称是 "concatenate",可以用来读取文件并将其内容输出到标准输出(通常是终端)。
/etc/passwd
:这是一个系统文件,包含所有用户的基本信息。每个用户信息一行,格式一般为:用户名:密码占位符:用户ID:组ID:用户全名:主目录:登录shell
|
(管道)
管道符号 |
将前一个命令的输出传递给后一个命令。在这个例子中,cat/etc/passwd
的输出会作为输入提供给 grep
命令。
grep
:这是一个用于文本搜索的命令,可以在文件或输入流中查找符合条件的行,并将其输出。grep
的名称来自于“global regular expression print”。
ahead:这是要搜索的字符串。grep
会查找所有包含 ahead
的行。
① 使用文本分析工具awk查看全部用户列表。
awk -F':' '{ print $1}' /etc/passwd
② 使用文本分析工具awk查看普通用户列表。
awk -F':' '{ if ($3 >= 1000) print $1}' /etc/passwd
(四)管理用户账户密码
使用passwd命令为用户设置密码
passwd [选项] [用户名]
指定要更改密码的用户。如果不提供用户名,passwd
将默认为当前登录用户。
(五)用户账户维护
1、 修改账户
usermod 命令用于修改已存在用户的属性
usermod [选项] 用户名
2、禁用和恢复账户
①使用passwd命令(被锁定用户的密码必须是使用passwd命令生成的)
锁定用户:passwd -l username
解锁用户:passwd -u username
②使用usermod命令
锁定用户:usermod -L username
解锁用户:usermod -U username
③ 直接修改用户账户配置文件
不推荐此方法
可将/etc/passwd文件或/etc/shadow文件中关于user账户的passwd域的第一个字符前面加上一个“*”,达到禁用账户的目的,在需要恢复的时候只要删除字符“*”即可。
3、删除用户账户
userdel [-r] 用户名
- 选项-r表示删除该账户的同时一并删除该账户对应的主目录和邮件目录。
- userdel不允许删除正在使用(已经登录)的用户账户。
4、创建组账户
使用Linux通用命令groupadd:
groupadd [选项] 组名
-g选项可自行指定组的GID。
5、修改组账户
groupmod [-g GID] [-n 新组名] 组名
6、删除组账户
groupdel 组名
7、查看组账户
sudo cat /etc/group 显示系统中的所有用户组及其成员
cut -d: -f1 /etc/group 只查看用户组的名称
8、查看组成员
groups命令用于显示某用户所属的全部组。 若不指定用户名则显示当前用户的组信息。
groups 用户名
查看/etc/group文件: 保存了系统中所有用户组的信息,包括组名、组ID以及组成员
9、gpasswd命令
添加用户到指定组:
passwd -a 用户名 组名
从指定组中删除用户:
gpasswd -d 用户名 组名
将多个用户添加为组成员:
gpasswd -M 用户名,用户名,... 组名
10、管理组成员
adduser命令:将用户添加到指定组
adduser 用户名 组名
deluser命令:用户从指定的组中删除
deluser 用户名 组名
总结
通过本项目的学习,我们深入了解了Linux用户与组的管理,包括用户账户的类型、超级用户权限的应用、用户和组配置文件的结构、以及如何有效地创建、修改和删除用户与组账户。此外,我们还探讨了useradd
与adduser
的区别,以及如何使用命令行工具如passwd
、usermod
、和gpasswd
等进行用户和组的日常管理。掌握这些基本知识,将为系统的安全与管理打下坚实的基础,使得网络管理员能够更从容地应对多用户、多任务的管理挑战。