28、Linux 用户与权限管理全解析

Linux 用户与权限管理全解析

1. 安全使用 root 权限

root 权限在 Linux 系统中具有极高的权力,它可以读写任何普通文件、进行底层硬件访问、重新配置网络等,这些操作是普通用户无法完成的。然而,这种强大的权力也伴随着巨大的风险。

1.1 root 权限的风险
  • 误操作导致系统故障 :一个简单的错误命令就可能意外删除关键应用程序文件,导致系统长时间停机。例如,误删重要配置文件或破坏重要备份,这对公司来说可能是灾难性的。
  • 安全漏洞 :入侵者获取 root 访问权限后,可能会对配置文件进行意外更改,损坏部分系统文件,甚至更改普通用户文件的所有权或权限,使文件所有者无法访问。
1.2 安全使用 root 权限的建议
  • 评估必要性 :在使用 root 权限之前,先问自己是否真的需要。有时可以通过其他方式实现目标,或者以更有限的方式使用权限。例如,若只有 root 能写入可移动磁盘,可通过调整磁盘权限来解决,减少 root 权限的使用。
  • 仔细检查命令 :在以 root 身份输入命令并按下回车键(或在以 root 身份运行的 GUI 程序中点击确认按钮)之前,将手从键盘和鼠标上移开,仔细检查命令的正确性。一个简单的拼写错误可能会带来严重后果。
  • 避免运行可疑程序 :不要以 root 身份运行可疑程序。在多用户系统中,不道德的用户可能会试图诱使管理员运行恶意程序,或者从随机网站下载的程序可能会危及系统安全。
  • 缩短使用时间 :尽量缩短使用 root 权限的时间。如果只需要输入一两个 root 命令,完成后在 root shell 中输入 exit 退出,或者使用 sudo 来运行命令,避免在不需要 root 权限时误输入命令。
  • 防止他人访问 :不要让 root shell 对他人可用。如果在进行 root 维护任务时需要离开,在离开计算机前在 root shell 中输入 exit
  • 保护 root 密码 :不要与他人共享 root 密码,在公共区域或他人可能看到的情况下谨慎输入密码。选择一个强密码,并遵循公司关于 root 访问的规定。
2. Linux 账户基础

在 Linux 系统中,账户对于系统的正常运行至关重要。大多数日常任务可以使用标准用户账户完成,可使用 whoami id who w 等工具来识别自己的账户和查看其他用户的使用情况。但在执行一些管理任务时,需要使用 root 账户的权限。

2.1 建议练习
  • 查看普通用户账户状态 :输入 whoami 后再输入 id ,查看自己的普通用户账户状态。 id 命令可能会显示你所属的各种组,可通过网络搜索了解每个组的作用。
  • 查看系统账户 :读取 /etc/passwd 文件或输入 getent passwd 查看系统上定义的账户。检查是否有除自己之外的普通用户账户(UID 高于 500 或 1000,具体取决于发行版),并通过网络搜索了解一些系统账户(UID 低于 500 或 1000)的用途。
2.2 复习问题
问题 选项 答案
系统账户 UID 为 0 的用途是什么? A. 它是系统管理账户。
B. 它是第一个普通用户的账户。
C. 无;UID 0 故意未定义。
D. 不同发行版有所不同。
E. 它是一些服务器默认使用的低权限账户。
A
/etc/passwd 中,普通用户账户会包含哪些类型的信息?(多选) A. 用户 ID(UID)号码
B. 用户所属的每个组的完整列表
C. 账户主目录的路径
D. 账户默认 GUI 桌面环境的路径
E. 账户默认文本模式 shell 的路径
ACE
你以普通用户身份登录,想以 root 身份运行 cat /etc/shadow 命令,以下哪个命令可以完成任务(假设系统配置允许你通过适当命令获得 root 访问权限)? A. sudo cat /etc/shadow
B. root cat /etc/shadow
C. passwd cat /etc/shadow
D. su cat /etc/shadow
E. admin cat /etc/shadow
A
whoami 提供的信息比 id 更多,这句话对吗? - 错误
Linux 将其组信息存储在 /etc/groups 文件中,这句话对吗? - 正确
一般来说,以 root 身份运行程序时应格外小心,这句话对吗? - 正确
在 Linux 中,将用户名与 UID 号码关联的文件是 _ _ _。(提供文件的完整路径) - /etc/passwd
要了解当前哪些用户登录到计算机以及他们正在运行的程序,可以输入 _ - w
UID 低于 500 或 1000(取决于发行版)的账户是为 _ ____ 账户保留的。 - 系统
一个(n) _ ____ 环境意味着一个人不能否认自己的行为, sudo 命令有助于建立这种环境。 - 审计
3. 创建用户和组

Linux 是一个多用户操作系统,一台 Linux 计算机可以支持多个用户,每个用户都有唯一的账户。因此,需要掌握创建、修改和删除账户以及管理组的方法。

3.1 创建新账户

在许多环境中,添加账户是一项常见任务。在创建账户之前,需要考虑如何使用组以及选择一个好的密码。

3.2 组策略的选择

Linux 中的组是用户的集合,可以使用组来控制对特定文件的访问。常见的组策略有两种:
- 用户组 :每个用户可以有一个关联的组。例如,用户 luke 可以有一个名为 luke 的组。用户可以设置自己文件的组所有权和权限,系统管理员可以将其他用户添加到该组。这种方法强调控制对单个用户文件的访问。
- 项目组 :根据工作项目、部门隶属关系或其他实际用户分组创建组。例如,为销售部门的用户创建一个名为 sales 的组。组内成员可以通过适当设置组所有权和权限来共享文件。这种方法适用于大量用户协作的场景。

这两种方法不是相互排斥的,可以混合使用或创建自己的方法。同时,用户可以属于多个组,这对于用户组策略的实施是必要的。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A(选择组策略):::process --> B(用户组):::process
    A --> C(项目组):::process
    B --> D(控制单个用户文件访问):::process
    C --> E(适用于大量用户协作):::process
3.3 选择好的密码

创建账户时,通常需要为其设置密码。密码的安全性至关重要,以下是一些选择密码的建议:
- 避免常见密码 :避免使用基于家庭成员、朋友、宠物的名字,喜欢的书籍、电影、电视节目或角色,电话号码、街道地址、社会安全号码等有意义的个人信息,字典中的单个单词,以及简单的键盘或字母数字组合(如 qwerty 123456 )。
- 构建密码的方法
1. 选择易记难猜的基础 :可以使用两个或多个不相关的单词,如 bun pen 合并为 bunpen ;或者使用有意义短语的首字母,如 “yesterday I went to the dentist” 的首字母 yiwttd 。基础不应是任何语言中的单词,且密码越长越好。
2. 修改基础密码
- 添加数字或标点 :在基础密码中插入随机数字或标点,如 bu3npe?n y+i9wttd ,至少添加两个符号或数字。
- 混合大小写 :Linux 密码区分大小写,混合字母大小写可以提高安全性,如 Bu3nPE?n y+i9WttD
- 反转顺序 :反转部分或全部字母的顺序,如 Bu3nn?EP DttW9i+y
- 增加长度 :通过重复单个字符等方式增加密码长度,如 Bu3nn?EPiiiiiiiiii Dtt!!!!!!!!!!!W9i+y

同时,要教育用户了解密码安全的重要性,避免密码泄露和在多个系统使用相同密码等风险行为。

4. 使用 GUI 工具创建账户

一些 Linux 发行版允许通过 GUI 工具创建账户,但不同发行版的工具访问方式和名称可能不同。例如,在 Ubuntu 中可以使用桌面搜索工具输入 user 来查找账户创建工具,而在其他发行版中可能需要通过桌面菜单来定位。

以 openSUSE 的 User and Group Administration 工具为例,创建用户的步骤如下:
1. 点击 “Add” 按钮,弹出 “New Local User” 对话框。
2. 在 “User’s Full Name” 字段中输入用户的全名,该信息将存储在 /etc/passwd 的注释字段中,并可能在某些桌面环境中显示。
3. 在 “Username” 字段中输入用户名,这是用户在 Linux 登录提示中输入的名称。
4. 在 “Password” 和 “Confirm Password” 字段中分别输入两次密码。如果用户在场,可以让用户自行输入密码。

Linux 用户与权限管理全解析

5. 修改和删除账户

在创建用户账户之后,根据实际需求,可能需要对账户进行修改或者删除操作。

5.1 修改账户

修改账户信息通常涉及到更改用户的基本信息,如用户名、密码、主目录、默认 shell 等。不同的 Linux 发行版可能提供不同的工具来完成这些操作,但一些常见的命令可以通用。
- 修改密码 :使用 passwd 命令可以修改用户的密码。例如,要修改当前用户的密码,只需在终端中输入 passwd ,然后按照提示输入当前密码(如果有)和新密码。
- 修改用户信息 :使用 usermod 命令可以修改用户的各种信息。以下是一些常见的用法:
- 修改用户的主目录: usermod -d /new/home/directory username
- 修改用户的默认 shell: usermod -s /bin/new_shell username
- 修改用户所属的主要组: usermod -g new_group username

5.2 删除账户

当用户不再需要使用系统账户时,需要将其删除。删除账户时,要谨慎操作,因为这将永久删除用户的所有数据。可以使用 userdel 命令来删除账户。
- 仅删除账户 userdel username 此命令将删除用户账户,但保留用户的主目录和相关文件。
- 删除账户及主目录 userdel -r username 此命令将删除用户账户及其主目录和相关文件。

操作类型 命令 说明
修改密码 passwd 修改当前用户或指定用户的密码
修改主目录 usermod -d /new/home/directory username 将指定用户的主目录修改为新的路径
修改默认 shell usermod -s /bin/new_shell username 将指定用户的默认 shell 修改为新的 shell
修改主要组 usermod -g new_group username 将指定用户的主要组修改为新的组
仅删除账户 userdel username 删除指定用户账户,保留主目录和相关文件
删除账户及主目录 userdel -r username 删除指定用户账户及其主目录和相关文件
6. 管理组

除了管理用户账户,还需要对组进行管理,包括创建、修改和删除组。

6.1 创建组

使用 groupadd 命令可以创建新的组。例如,要创建一个名为 developers 的组,可以在终端中输入 groupadd developers

6.2 修改组

使用 groupmod 命令可以修改组的信息,如组名和 GID(组 ID)。
- 修改组名: groupmod -n new_group_name old_group_name
- 修改 GID: groupmod -g new_gid group_name

6.3 删除组

使用 groupdel 命令可以删除组。例如,要删除名为 developers 的组,可以输入 groupdel developers

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A(组管理):::process --> B(创建组):::process
    A --> C(修改组):::process
    A --> D(删除组):::process
    B --> E(groupadd 组名):::process
    C --> F(groupmod -n 新组名 旧组名):::process
    C --> G(groupmod -g 新GID 组名):::process
    D --> H(groupdel 组名):::process
7. 总结

通过对 Linux 用户与权限管理的学习,我们了解到在 Linux 系统中,账户和组的管理是保障系统安全和正常运行的重要环节。
- root 权限 :root 权限具有强大的功能,但使用时必须谨慎,遵循安全使用的建议,避免误操作和安全漏洞。
- 账户管理 :掌握创建、修改和删除用户账户的方法,以及如何选择合适的组策略和设置安全的密码。
- 组管理 :学会创建、修改和删除组,以实现对用户的有效分组和文件访问控制。

在实际应用中,要根据具体的需求和场景,合理运用这些知识,确保 Linux 系统的安全性和高效性。同时,不断学习和实践,积累经验,才能更好地管理和维护 Linux 系统。

希望这些内容能帮助你更好地理解和掌握 Linux 用户与权限管理的相关知识,在实际操作中更加得心应手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值