Linux 用户和用户组管理

Linux 用户和用户组管理

简介

Linux 系统是一个多用户多任务的操作系统,任何一个使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并对用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的密码。

用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。

要想实现用户账号的管理,要完成的工作主要有如下几个方面:

用户账号的添加、删除、修改以及用户密码的管理。

用户组管理。

注意三个文件

文件作用
/etc/passwd储存用户的关键信息
/etc/group储存用户组的关键信息
/etc/shadow储存用户的密码信息

用户管理

  • 添加用户

    • 常用语法:#useradd 【选项】【用户名】
    • 常用选项:
      • -g:表示指定用户的用户主组,选项的值可以是用户组的 id ,也可以是组名
      • -G:表示指定用户的用户附加组,选项的值可以是用户组的 id ,也可以是组名
      • -u:uid ,用户的 id (用户的标识符),系统默认会从 500 之后按顺序分配 uid ,如果不想使用系统分配的,可以通过该选项自定义(类似于腾讯 QQ 的自选靓号情况)
      • -c:comment ,添加注释

案例一:

创建用户 niuniu ,不带任何选项

#useradd niuniu

验证是否成功:

  1. 验证 /etc/passwd 的最后一行,查看是否有 niuniu 的信息;
  2. 验证是否存在家目录(在 Centos 下创建好用户之后随之产生一个同名家目录);
  • 扩展:认识 passwd 文件

在这里插入图片描述

文件结构:

用户名 : 密码 : 用户ID : 用户组ID : 注释 : 家目录 : 解释器 shell

  1. 用户名:创建新用户名称,后期登陆的时候需要输入;
  2. 密码:此密码位置一般情况都是 “ x ” ,表示密码的站位;
  3. 用户 ID:用户的识别符;
  4. 用户组 ID:该用户所属的主组 ID;
  5. 注释:解释该用户是做什么用的;
  6. 家目录:用户登录进入系统之后默认的位置;
  7. 解释器 shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;

注意:在不添加选项的时候,执行 useradd 之后会执行一系列的操作

  1. 创建同名的家目录;
  2. 创建同名的用户组;

案例二:

添加选项,创建用户 xiaok ,让 xiaok 属于1003 主组 ,附加组1002

在这里插入图片描述

在这里插入图片描述

  • 修改用户

    • 常用语法:#usermod 【选项】【用户名】
      • usermod:user modify ,用户修改
    • 常用选项:
      • -g:表示指定用户的用户主组,选项的值可以是用户组的 id ,也可以是组名
      • -G:表示指定用户的用户附加组,选项的值可以是用户组的 id ,也可以是组名
      • -u:uid ,用户的 id (用户的标识符),系统默认会从 500 之后按顺序分配 uid ,如果不想使用系统分配的,可以通过该选项自定义(类似于腾讯 QQ 的自选靓号情况)
      • -c:comment ,添加注释
      • -l:修改用户名

案例一:

修改 xiaok 用户主组为 1002 ,附加组改为 1003

语法:#usermod -g 1002 -G 1003

在这里插入图片描述

在这里插入图片描述

案例二:

修改 xiaok 用户的用户名,改为 yyyym

#usermod -l 【新的用户名】 【旧的用户名】

语法:#usermod -l yyyym xiaok

在这里插入图片描述

  • 设置密码

    • Linux 不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录到计算机。
    • 常用语法:#passwd 【用户名】
    • 修改密码和设置密码语法一样

案例:

设置 manman 用户的密码。

在这里插入图片描述

注意:在设置密码的时候是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车即可。

  • 切换用户

    • 语法:
      • #su 【用户名】 (switch user)
      • 如果用户名不指定则表示切换到 root 用户。

在这里插入图片描述

注意事项:

  1. 从 root 往普通用户切换不需要密码,但是反之则需要 root 密码;
  2. 切换普通用户之后前后的工作路径是不变的;
  3. 普通用户没有办法访问 root 用户家目录,但是反之则可以。
  • 删除用户

    • 常用语法
      • #userdel 【选项】【用户名】
    • 常用选项
      • -r:表示删除用户的同时,删除其家目录;

案例:

删除 manman 用户

#userdel manman

在这里插入图片描述

补充:启动中的用户无法删除成功,这时候只要 kill 掉它即可。

用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的用户进行集中管理。不同 Linux 系统对用户组的规定会有所不同,如 Linux 下的用户输入与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组用户组的添加、删除和修改。组的添加、删除和修改实际上就是对 /etc/group 文件的更新。

  • 扩展:认识 group 文件

在这里插入图片描述

文件结构:

用户组名 : 密码 : 用户组 ID : 组内用户名

  1. 密码:x 表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码。

  2. 组内用户名:表示附加组是该组的用户名称。

  • 用户组添加
    • 常用语法:#groupadd 【选项】【用户组名】
    • 常用选项:
      • -g:类似用户添加里的 “ -u ” ,-g 表示选择自己设置一个自定义的用户组 ID 数字,如果自己不指定,则默认从 500 之后递增。

案例

使用 groupadd 指令创建一个新的用户组,命名为 administrators

#groupadd -g 501 administrators

在这里插入图片描述

  • 用户组修改
    • 常用语法:#groupmod 【选项】【用户组名】
    • 常用选项:
      • -g:类似用户修改里的 “ -u ” , -g 表示选择自己设置一个自定义的用户组 ID 数字
      • -n:类似用户修改里的 “ -l ” ,表示设置新的用户组的名称

案例:

修改 administrators 用户组,将 ID 从 501 改为 520 ,并将名称改为 admins

在这里插入图片描述

  • 用户组删除
    • 常用语法:#groupdel 【用户组名】

在这里插入图片描述

注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移除所有用户。


版权声明:本文为qq_42933309原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。