Linux用户与组管理

一、存放用户和组的重要文件

  • /etc/passwd:该文件存放所有用户信息。

    可以看到每个用户信息由7个字段构成,下面以root用户和kali用户为例解释一下这些字段:

    字段1表示用户名;

    字段2表示用户密码,由于密码并不存放在该文件中,所以显示"x"表示密码不在这里,相当于一个占位符,并不是说密码是"x";

    字段3表示uid(用户的唯一数字标识),可以看到超级管理员用户root的uid为0,而普通用户kali用户的uid为1000,这是因为kali系统规定了超级管理员用户uid为0,普通用户uid>=1000;

    字段4表示gid(用户组的唯一数字标识),root用户所在组为管理员组,系统默认gid=0,kali用户所在组是一个普通的用户组,gid>=1000,注:在哪个组就显示哪个组的gid,就拥有该组的权限,例如在管理员的的所

    有用户gid为0,拥有管理员权限;

    字段5表示用户名全程和一些描述;

    字段6表示该用户的家目录,root用户的主目录是/root,kali的主目录是/home/kali;

    字段7表示用户登录的shell。

    综上所述,用户信息所构成的字段为 用户名:密码占位符:uid:gid:注释信息:家目录:登录shell

  • /etc/groups:该文件存放所有组。

    组名:密码占位符:gid:用户列表

    注:一个用户可以属于多个组。

二、用户与组管理命令

1. 用户管理命令

  • sudo [命令]:以管理员身份执行命令。如果当前为普通用户,想要执行一些管理员权限的命令,可以使用sudo。例如创建用户:sudo useradd [用户名]。sudo还可以提权为管理员root,使用:sudo su命令之后输入当前用户密码即可。

  • whoami:查看当前用户:

    当前用户为root。

  • id:查看当前用户更详细的信息:

    可以看到uid,gid,groups信息。uid是每个用户的唯一数字标识,uid为0的是超级管理员root,拥有系统上的所有权限,普通用户uid>=1000括号中的数字就是当前的用户名称;gid是每个组的唯一数字标识符,为0的是root组

  • useradd [用户名]:创建相应用户名的用户(需要管理员权限)。例如创建一个名为zhangsan的用户:

    此时创建的用户是没有密码的。

  • passwd [用户名]:为相应用户设置密码(需要管理员权限)。例如将zhangsan用户密码设置为123456:

    密码不会显示出来

  • su [用户名]:切换用户。例如讲当前用户切换为zhangsan用户:

    如果是管理员账户切换普通账户,不需要输入密码,如果是普通用户切换其他用户,要输入密码,该例中密码为123456

  • usermod:修改用户信息(需管理员权限),详情可使用usermod --help命令查看用法。如果想给用户某个权限,只需将该用户的gid改为对应权限的组的gid即可

  • exit:退出当前用户。

  • userdel [用户名]:删除用户(需管理员权限),例如删除zhangsan:

2. 组管理命令

  • groups:显示当前用户所在的组

  • groupadd:创建新的用户组(需管理员权限),和创建用户格式一样

  • groupmod:修改组信息(需要管理员权限),和修改用户信息格式一样

  • groupdel:删除组(需管理员权限),和删除用户格式一样

重要声明:本文仅为学习分享,请勿用于非法用途,否则后果自负,与作者本人无关