Unix / Linux - 用户管理

  • 简述

    本章将详细讨论 Unix 中的用户管理。
    Unix 系统上有三种类型的帐户 -

    root账户

    这也叫 superuser并且可以完全和不受限制地控制系统。超级用户可以不受任何限制地运行任何命令。该用户应被假定为系统管理员。

    系统账号

    系统帐户是操作特定于系统的组件所需的帐户,例如邮件帐户和 sshd帐户。这些帐户通常是系统上某些特定功能所必需的,对它们进行任何修改都可能对系统产生不利影响。

    用户帐号

    用户帐户为用户和用户组提供对系统的交互式访问。一般用户通常分配给这些帐户,并且通常对关键系统文件和目录具有有限的访问权限。
    Unix 支持Group Account的概念,它在逻辑上将多个帐户分组。每个帐户都将成为另一个组帐户的一部分。Unix 组在处理文件权限和进程管理方面起着重要作用。
  • 管理用户和组

    有四个主要的用户管理文件 -
    • /etc/passwd− 保留用户帐户和密码信息。该文件包含有关 Unix 系统上帐户的大部分信息。
    • /etc/shadow− 持有对应账户的加密密码。并非所有系统都支持此文件。
    • /etc/group − 该文件包含每个帐户的组信息。
    • /etc/gshadow − 此文件包含安全组帐户信息。
    使用 cat 命令。
    下表列出了大多数 Unix 系统上可用于创建和管理帐户和组的命令 -
    序号 命令和描述
    1
    useradd
    将帐户添加到系统
    2
    usermod
    修改账户属性
    3
    userdel
    从系统中删除帐户
    4
    groupadd
    向系统添加组
    5
    groupmod
    修改组属性
    6
    groupdel
    从系统中删除组
    您可以使用 Manpage Help 检查此处提到的每个命令的完整语法。
  • 创建组

    我们现在将了解如何创建组。为此,我们需要在创建任何帐户之前创建组,否则,我们可以利用系统中现有的组。我们列出了所有的组/etc/groups 文件。
    所有默认组都是系统帐户特定组,不建议将它们用于普通帐户。因此,以下是创建新组帐户的语法 -
    
     groupadd [-g gid [-o]] [-r] [-f] groupname
    
    下表列出了参数 -
    序号 选项和说明
    1
    -g GID
    组ID的数值
    2
    -o
    此选项允许添加具有非唯一 GID 的组
    3
    -r
    这个标志指示 groupadd 添加系统帐户
    4
    -f
    如果指定的组已存在,则此选项仅以成功状态退出。使用 -g,如果指定的 GID 已经存在,则选择其他(唯一的)GID
    5
    groupname
    要创建的实际组名
    如果不指定任何参数,则系统使用默认值。
    以下示例创建了一个具有默认值的开发人员组,这对于大多数管理员来说是非常可接受的。
    
    $ groupadd developers
    
  • 修改组

    要修改组,请使用 groupmod 语法 -
    
    $ groupmod -n new_modified_group_name old_group_name
    
    要将 developer_2 组名称更改为 developer,请键入 -
    
    $ groupmod -n developer developer_2
    
    以下是您将财务 GID 更改为 545 的方法 -
    
    $ groupmod -g 545 developer
    
  • 删除组

    我们现在将了解如何删除组。要删除现有组,您只需要groupdel commandgroup name. 要删除财务组,命令是 -
    
    $ groupdel developer
    
    这只会删除该组,而不是与该组关联的文件。这些文件的所有者仍然可以访问这些文件。
  • 创建一个帐户

    让我们看看如何在您的 Unix 系统上创建一个新帐户。以下是创建用户帐户的语法 -
    
    useradd -d homedir -g groupname -m -s shell -u userid accountname
    
    下表列出了参数 -
    序号 选项和说明
    1
    -d homedir
    指定帐户的主目录
    2
    -g groupname
    为这个账户指定一个组账户
    3
    -m
    如果主目录不存在,则创建它
    4
    -s shell
    指定此帐户的默认 shell
    5
    -u userid
    您可以为此帐户指定用户 ID
    6
    accountname
    要创建的实际帐户名称
    如果不指定任何参数,则系统使用默认值。useradd 命令修改 /etc/passwd, /etc/shadow, 和 /etc/group 文件并创建一个主目录。
    以下是创建帐户的示例 mcmohd,将其主目录设置为 /home/mcmohd 和组作为 developers. 该用户将拥有 Korn Shell 分配给它。
    
    $ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd
    
    在发出上述命令之前,请确保您已经使用以下命令创建了开发人员groupadd 命令。
    创建帐户后,您可以使用 passwd 命令如下 -
    
    $ passwd mcmohd20
    Changing password for user mcmohd20.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
    
    当你输入 passwd accountname,它为您提供更改密码的选项,前提是您是超级用户。否则,您可以使用相同的命令仅更改密码,但无需指定您的帐户名。
  • 修改账户

    usermod命令使您能够从命令行对现有帐户进行更改。它使用与useradd 命令,加上 -l 参数,它允许您更改帐户名称。
    例如,更改帐户名称 mcmohdmcmohd20 并相应地更改主目录,您需要发出以下命令 -
    
    $ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20
    
  • 删除帐户

    userdel命令可用于删除现有用户。如果不小心使用,这是一个非常危险的命令。
    该命令只有一个参数或选项可用 .r, 用于删除帐户的主目录和邮件文件。
    例如,要删除帐户mcmohd20,请发出以下命令 -
    
    $ userdel -r mcmohd20
    
    如果要保留主目录用于备份目的,请省略 -r选项。您可以稍后root据需要删除主目录。