28、Linux 用户账户管理与 root 权限安全使用指南

Linux 用户账户管理与 root 权限安全使用指南

1. root 权限的危险性及安全使用建议

root 权限在 Linux 系统中拥有极高的权力,但同时也伴随着巨大的风险。一个小小的失误,比如意外删除关键应用文件、损坏重要配置文件或备份,都可能导致系统长时间停机,给企业带来灾难性的后果。此外,如果入侵者获得了 root 访问权限,可能会对系统造成不可挽回的损失,如修改配置文件、损坏系统文件以及更改普通用户文件的所有权或权限,使真正的用户无法访问这些文件。

为了安全使用 root 权限,建议采取以下预防措施:
- 评估是否真的需要 root 权限 :有时可以在不使用超级用户权限的情况下实现目标,或者通过更有限的方式使用这些权限。例如,如果只有 root 才能写入可移动磁盘,可以尝试通过调整磁盘权限来解决问题,从而减少对 root 权限的依赖。
- 仔细检查命令 :在以 root 身份输入命令并按下 Enter 键之前,或者在以 root 身份运行的 GUI 程序中点击确认按钮之前,先把手从键盘和鼠标上移开,仔细检查命令,确保其完全正确。一个简单的拼写错误可能会带来严重的后果。
- 避免运行可疑程序 :切勿以 root 身份运行可疑程序。在多用户系统中,不道德的用户可能会试图诱使管理员运行恶意程序,从而获取 root 权限。从随机网站下载的程序也可能存在安全风险,以 root 身份运行这些程序会更加危险。
- 尽量缩短使用时间 :如果只需要以 root 身份输入一两个命令,完成后立即在 root shell 中输入 exit 命令,退出 root 权限或返回普通用户权限。更好的做法是使用 sudo 命令来运行这些命令,因为很容易在使用 root shell 时忽略自己的权限,从而输入不需要 root 权限的命令,每个以 root 身份输入的命令都存在风险。
- 防止他人访问 root shell :如果在进行 root 维护任务时需要离开计算机,务必在离开前在 root shell 中输入 exit 命令,避免他人获得 root 访问权限。
- 谨慎对待 root 密码 :不要与他人共享 root 密码,在公共场合或他人可能看到的情况下输入密码时要格外小心。如果在专业环境中使用 Linux,雇主可能会有关于谁可以拥有 root 访问权限的规定,要了解并遵守这些规定。同时,一定要选择一个强密码。

以下是一个简单的 mermaid 流程图,展示了使用 root 权限的安全流程:

graph TD;
    A[需要执行操作] --> B{是否需要 root 权限};
    B -- 否 --> C[使用普通用户权限执行];
    B -- 是 --> D[评估必要性];
    D -- 必要 --> E[输入命令];
    E --> F[检查命令];
    F -- 正确 --> G[执行命令];
    G --> H[完成后退出 root 权限];
    F -- 错误 --> I[修正命令];
    I --> E;
    D -- 不必要 --> J[寻找替代方法];
2. Linux 账户的基本信息及相关工具

在 Linux 系统中,账户对于系统的正常运行至关重要。通常情况下,大多数任务只需要普通用户权限,你可以使用自己的用户账户来处理这些任务。同时,可以使用 whoami id who w 等工具来识别自己的账户,并了解其他正在使用计算机的用户信息。

偶尔,你可能需要执行一些需要 root 账户权限的管理任务,root 账户可以读写任何普通文件、以底层方式访问硬件、重新配置网络等,而这些是普通用户不被允许的操作。由于 root 权限非常强大,使用时必须谨慎,以免因拼写错误或其他意外情况导致严重问题。

以下是一些相关的建议练习:
- 输入 whoami 后再输入 id ,查看自己的普通用户账户状态。 id 命令可能会显示你所属的各个组,你可以通过网络搜索了解每个组的作用。
- 读取 /etc/passwd 文件或输入 getent passwd ,查看计算机上定义的账户信息。检查是否存在除自己之外的普通用户账户(UID 通常高于 500 或 1000,具体取决于你的发行版),并尝试通过网络搜索了解一些系统账户(UID 低于 500 或 1000)的用途。

3. Linux 账户管理相关问题解答

以下是一些关于 Linux 账户管理的常见问题及解答:
|问题|选项|答案|
|----|----|----|
|系统账户 UID 为 0 的目的是什么?|A. 它是系统管理账户
B. 它是第一个普通用户的账户
C. 无;UID 0 故意未定义
D. 因发行版而异
E. 它是一些服务器默认使用的低权限账户|A|
|在 /etc/passwd 中可以找到普通用户账户的哪些类型的信息?(多选)|A. 用户 ID (UID) 编号
B. 用户所属的每个组的完整列表
C. 账户主目录的路径
D. 账户默认 GUI 桌面环境的路径
E. 账户默认文本模式 shell 的路径|A、C、E|
|你以普通用户身份登录,但想以 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 命令有助于建立这种环境。| - |可审计|

4. Linux 用户和组的创建与管理

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

4.1 创建新账户

在许多环境中,添加账户是一项常见的任务,例如企业招聘新员工、学校招收新学生、慈善组织招募新志愿者等。在创建账户之前,需要考虑如何使用用户组以及选择一个好的密码。

4.1.1 确定组策略

Linux 中的用户组是用户的集合,可以使用组来控制对特定文件的访问权限。常见的组策略有两种:
- 用户组(User Groups) :每个用户都可以有一个关联的组,例如用户 luke 可以有一个名为 luke 的组。用户可以将自己文件的组所有权设置为 luke ,并设置所需的组权限,系统管理员可以将其他用户添加到 luke 组。此后, luke 组的成员可以根据 luke 用户设置的权限访问这些文件。这种方法强调对单个用户文件的访问控制。
- 项目组(Project Groups) :根据工作项目、部门隶属关系或其他现实世界的用户分组来创建组。例如,可以为销售部门的用户创建一个名为 sales 的组。该组的成员如果想与其他成员共享文件,可以适当分配组所有权和权限,并将文件存储在商定的位置。这种方法适用于大量用户以易于定义的组进行协作的情况。

这两种方法并不是相互排斥的,可以混合使用或创建自己的方法。同时,用户可以属于多个组,这对于用户组策略的实施是必要的,否则组将与账户冗余。如果使用项目组策略,需要考虑为新用户分配哪个组作为其主组,主组将默认分配给用户文件的组所有权。

以下是一个简单的表格,对比两种组策略:
|组策略|特点|适用场景|
|----|----|----|
|用户组|强调对单个用户文件的访问控制|适用于需要严格控制用户文件访问权限的场景|
|项目组|基于工作项目或部门隶属关系创建组,便于团队协作|适用于大量用户以团队形式协作的场景|

4.1.2 选择一个好的密码

创建账户时,通常需要为其创建一个密码。有时用户可以在创建账户时自行选择密码,有时则需要管理员为用户选择一个初始密码,并要求用户尽快更改。无论哪种情况,都需要向用户宣传选择好密码的重要性。

常见的弱密码包括基于以下内容的密码:
- 家庭成员、朋友和宠物的名字
- 喜欢的书籍、电影、电视节目或其中的角色
- 电话号码、街道地址或社会安全号码
- 任何其他有意义的个人信息
- 字典中能找到的任何单个单词(任何语言)
- 任何简单的键盘或字母数字组合,如 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

为了让用户选择好密码,需要向他们宣传以下信息:
- 恶意人员可能会通过了解用户或在社交媒体、网络电话目录、商业资料等上查找个人信息来猜测密码。
- 尽管 Linux 会对密码进行加盐和哈希处理,但存在一些程序可以将整个字典通过 Linux 的密码加盐/哈希算法进行比对,如果匹配则密码被破解。
- 用户账户可能被用作入侵整个计算机的第一步,或作为攻击其他计算机的跳板。
- 用户永远不应向他人透露密码,即使对方声称是系统管理员,因为真正的系统管理员不需要用户的密码。
- 不要在多个系统上使用相同的密码,否则一旦一个账户被攻破,所有使用相同密码的账户都会受到威胁。
- 写下密码或通过电子邮件发送密码都是危险的行为,将密码写在粘纸上贴在电脑显示器上尤其愚蠢。

以下是一个常见弱密码的列表:
- 123456
- password
- 12345678
- qwerty
- football
- monkey
- 1234
- baseball
- dragon

这些密码很容易被暴力破解程序发现,并且在互联网上的密码集合中也有收录,使用这样的密码几乎和不使用密码一样危险,建议创建更安全的密码。

4.2 使用 GUI 工具创建账户

在了解了组策略和如何选择好密码之后,就可以开始创建账户了。一些 Linux 发行版允许通过 GUI 工具来完成这个任务,但不同发行版的 GUI 工具可能有所不同,包括访问方式和工具名称。在一些发行版中,可以使用桌面的搜索工具(如 Ubuntu 的 Dash)输入 user 来找到相应的账户创建工具;在其他发行版中,可能需要通过桌面菜单来找到正确的工具,工具名称可能类似于 Users User Accounts User and Group Administration

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

通过以上步骤,你可以安全地使用 root 权限,并有效地管理 Linux 系统中的用户账户和组。希望这些信息对你有所帮助,让你在 Linux 系统的使用和管理中更加得心应手。

5. 修改和删除账户

在 Linux 系统中,除了创建账户,还需要掌握修改和删除账户的操作。

5.1 修改账户

修改账户信息可能涉及到更改用户的密码、主目录、默认 shell 等。不同的 Linux 发行版可能有不同的工具来完成这些操作,但常见的命令有 usermod 。下面是使用 usermod 命令修改账户信息的一些示例:
- 修改用户主目录 :如果要将用户 testuser 的主目录从 /home/testuser 修改为 /new/home/testuser ,可以使用以下命令:

usermod -d /new/home/testuser testuser
  • 修改用户默认 shell :若要将用户 testuser 的默认 shell 从 /bin/bash 修改为 /bin/zsh ,可以使用如下命令:
usermod -s /bin/zsh testuser
  • 修改用户所属组 :把用户 testuser 从当前组转移到 newgroup 组,可以使用以下命令:
usermod -g newgroup testuser

以下是一个简单的表格,总结 usermod 命令的常用选项:
|选项|作用|
|----|----|
| -d |修改用户主目录|
| -s |修改用户默认 shell|
| -g |修改用户所属主组|
| -G |添加用户到额外的组|

5.2 删除账户

当某个用户不再需要使用系统时,需要删除其账户。删除账户时要谨慎,因为这将永久删除与该账户相关的所有数据。可以使用 userdel 命令来删除账户。以下是删除账户的操作步骤:
1. 确认要删除的账户 :首先确定要删除的账户名称,例如 testuser
2. 删除账户 :使用 userdel 命令删除账户。如果要同时删除用户的主目录和邮件 spool,可以使用 -r 选项:

userdel -r testuser

以下是删除账户的流程图:

graph TD;
    A[确定要删除的账户] --> B{是否要删除主目录和邮件 spool};
    B -- 是 --> C[使用 userdel -r 命令删除账户];
    B -- 否 --> D[使用 userdel 命令删除账户];
    C --> E[账户删除完成];
    D --> E;
6. 管理用户组

在 Linux 系统中,用户组的管理也是账户管理的重要组成部分,包括创建、修改和删除用户组。

6.1 创建用户组

可以使用 groupadd 命令来创建新的用户组。例如,要创建一个名为 newgroup 的用户组,可以使用以下命令:

groupadd newgroup
6.2 修改用户组

使用 groupmod 命令可以修改用户组的信息,如组名和 GID(组 ID)。以下是一些示例:
- 修改组名 :将组名从 oldgroup 修改为 newgroup ,可以使用以下命令:

groupmod -n newgroup oldgroup
  • 修改 GID :将组 testgroup 的 GID 修改为 1005 ,可以使用如下命令:
groupmod -g 1005 testgroup

以下是 groupmod 命令常用选项的表格:
|选项|作用|
|----|----|
| -n |修改组名|
| -g |修改 GID|

6.3 删除用户组

使用 groupdel 命令可以删除用户组。例如,要删除名为 testgroup 的用户组,可以使用以下命令:

groupdel testgroup
7. 总结

Linux 系统的账户和组管理是系统管理的重要基础。在使用 root 权限时,必须时刻牢记其危险性,严格遵循安全使用建议,如评估必要性、仔细检查命令、避免运行可疑程序等,以防止因操作失误导致系统出现严重问题。

在账户管理方面,要根据不同的场景选择合适的组策略,如用户组策略适用于严格控制用户文件访问权限的场景,项目组策略适用于团队协作的场景。同时,要注重密码的安全性,向用户宣传选择强密码的重要性,并指导他们正确创建密码。

对于账户的创建、修改、删除以及用户组的管理,要熟练掌握相应的命令和操作步骤,如使用 useradd 创建账户、 usermod 修改账户信息、 userdel 删除账户,使用 groupadd 创建用户组、 groupmod 修改用户组信息、 groupdel 删除用户组等。

通过合理有效地管理账户和组,可以提高 Linux 系统的安全性和可用性,确保系统的稳定运行。希望以上内容能帮助你更好地管理 Linux 系统中的账户和组,在实际操作中更加得心应手。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值