第三章 用户管理

发布时间 2023-10-19 17:40:56作者: Wybzyx

一、用户/组概览

       用户分为普通用户和超级用户,超级用户在Windows系统中为Administrator,在Linux系统中为root。登录Linux系统需要提供用户名与密码,登录后通过一定的方法管理该系统。

        Linux系统是多用户、多任务的分时操作系统,系统上每一个进程都有一个特定的文件,每个文件都被一个特定的用户所拥有。如果需要使用系统资源,首先必须向系统超级用户申请成为普通用户,然后以普通用户的身份进入系统。超级用户可以对普通用户进行跟踪,并设置他们的访问权限,这样可以保证系统的安全。

1.1 用户标识:UID与GID

       因为Linux系统并不能识别用户名信息,所以每个用户都有唯一的系统可识别的UID,它类似于居民身份证编号。id命令可以查看当前用户登录信息,UID(User Identification)为用户的ID,GID(Group Identification)为用户所属组的ID,groups为用户属于的所有组的ID。

        每个文件都有一个所有者(owner),使用ll命令可以查看文件的所有者,具体如下所示。

1.2 用户/组相关文件

  • /etc/passwd:包含系统中所有用户的信息,如用户名、用户ID、用户主目录等。在/etc/passwd文件中,一行记录对应一个用户,每行记录又被冒号(:)分隔为7个字段,依次为用户名称、密码占位符、用户UID、主组GID、注释性描述、用户主目录、用户的Shell。
  • /etc/shadow:包含用户的密码哈希值和密码过期信息。在/etc/shadow文件中,每行记录也由冒号分隔为9个字段,依次为用户名称、加密后的密码、最近改动密码时间、密码不可变更时间(99999为没有限制)、密码重新变更时间、密码过期时间、密码过期宽恕时间、用户失效时间、保留。

          注意,从CentOS 6开始,UID为0是特权用户,UID为1~499是系统用户,UID为500以上是普通用户。

1.3 超级用户

       root用户可以拥有所有系统权限,而且root用户有权力覆盖文件系统上的所有普通权限。系统中大多数设备只能由root控制,如安装或删除软件、管理系统文件和目录等。普通用户要进行相关操作需要root用户的许可。

二、管理用户/组

2.1 创建用户

可以使用useradd命令创建用户,例如useradd username,其中username是要创建的用户名。可以使用groupadd命令创建组,例如groupadd groupname,其中groupname是要创建的组名。

2.2 删除用户

可以使用userdel命令删除用户,例如userdel username,其中username是要删除的用户名。可以使用groupdel命令删除组,例如groupdel groupname,其中groupname是要删除的组名。

2.3 修改用户密码

       任何用户都可以通过passwd命令修改自己的密码。只有root用户可以修改其他用户的密码。普通用户修改密码需要提供原密码,对新密码要求也比较苛刻,root用户修改普通用户的密码则不需要提供原密码。当新密码不足8位时,系统会给予警告。

2.4 安全用户

      在创建用户时,通过“-s”参数指定用户的登录Shell为/sbin/nologin,可以将其设置为安全用户。

2.5 配置文件

      /etc/login.defs与/etc/default/useradd是命令useradd的配置文件,决定useradd创建用户默认的参数,文件中的配置对root用户无效。

2.6 su/sudo命令

       大多数操作都是以root用户的身份进行的,在实际环境中,用普通用户的身份相对比较安全,可避免因失误执行一些危险的命令,因此仅在需要设置系统环境时才会切换到root用户。

       可以使用su命令切换到其他用户的身份,例如su - username,其中username是要切换到的用户名。

       加入wheel组的普通用户可以使用sudo命令来执行系统相关操作,用户使用sudo时,必须先输入密码,之后有5分钟的有效时间,超过时限则必须重新输入密码。

三、总结

       在Linux系统中,用户管理是非常重要的。用户和用户组标识符是用来唯一标识用户和组的数字。每个用户都有自己的标识符,它们在系统中起着关键的作用。除了标识用户的身份外,用户的Shell也是非常重要的。Shell是用户与操作系统之间的接口,它允许用户与系统进行交互。不同的Shell提供不同的功能和特性,用户可以根据自己的需求选择合适的Shell。在Linux中,我们可以使用一系列命令来管理用户和用户组。通过使用命令如useradd、userdel和usermod,我们可以创建、删除和修改用户。同样,通过使用groupadd、groupdel和groupmod命令,我们可以创建、删除和修改用户组。在用户管理过程中,有两个重要的文件需要注意:/etc/passwd和/etc/shadow。/etc/passwd文件包含了系统中所有用户的信息,如用户名、用户ID、用户主目录等。而/etc/shadow文件则包含了用户的密码哈希值和密码过期信息。这些文件需要适当地设置和保护,以确保用户信息的安全性。另外,我们还学习了如何使用su命令进行用户身份切换。通过su命令,用户可以临时切换到其他用户的身份,并执行相应的操作。这对于需要临时以其他用户的权限执行命令的情况非常有用。此外,我们还了解了如何使用sudo命令提权。sudo命令允许普通用户以超级用户的身份执行特定的命令。通过在/etc/sudoers文件中配置用户的权限,我们可以控制哪些用户可以使用sudo命令以及可以执行哪些命令。

       总之,用户管理在Linux系统中是非常重要的。了解用户和用户组标识符的意义、用户的Shell作用以及如何对用户和用户组进行增、删、改、查等操作是非常重要的。同时,了解如何设置重要文件如/etc/passwd和/etc/shadow以及如何使用su命令进行身份切换和sudo命令提权也是必要的技能。