当前位置: 首页 > news >正文

【Linux学习】十五、Linux/CentOS 7 用户和组管理

Linux下组和用户的管理都必须是root用户下进行:

一、组的管理

1.组的创建

格式:

groupadd 组名

参数:

-g:指定用户组的组ID(GID),如果不提供则由系统自动分配。

【案例】创建一个名为 oldgroup 的新组

groupadd newgroup

系统将自动分配一个唯一的组ID(GID)给这个用户组。

2.组的删除

格式:

groupdel 组名

参数:

-f:强制删除用户组,即使用户组还有关联的用户。
【案例】 删除名为 oldgroup 的组

groupdel oldgroup

3.组的属性修改

格式:

groupmod [选项] 组名

参数:

-n:更改组名
-g:修改用户组的组ID(GID)。
-o:允许使用非唯一的组ID(GID)。
groupmod命令还有其他一些选项和参数,可以使用man groupmod命令在终端中查看groupmod的完整文档和使用说明。
【案例一】将名为"oldgroup"的用户组的组名更改为"newgroup",可以执行以下命令:

groupadd oldgroup
groupmod -n newgroup oldgroup

【案例二】修改名为 “newgroup” 的用户组的组ID(GID)为 1234,可以执行以下命令

groupmod -g 1234 newgroup

4.查看组的信息

①cat /etc/group 命令

在这里插入图片描述

②getent group 命令

在这里插入图片描述
与 cat /etc/group 不同的是,getent group 命令可以从不仅限于 /etc/group 文件中,还包括其他用户组数据库(如 NIS、LDAP 等)中获取用户组信息。

③仅显示系统中所有组名

cut -d: -f1 /etc/group

二、用户的管理

①超级用户(Superuser):

超级用户,也称为root用户,是系统中最高权限的用户。
root用户拥有对整个系统的完全控制权,可以执行任何操作,包括修改系统配置、安装软件、管理其他用户等。
超级用户(root)的UID为0。

②普通用户(Regular User):

普通用户是指一般使用计算机的用户。
普通用户只能访问和修改自己的文件及部分系统资源,无法对整个系统做出重要的变更。
普通用户可以通过sudo命令获取临时超级用户权限,执行需要特权的操作。
普通用户的UID从500开始递增。这些用户是系统中的一般用户,具有交互式登录权限,并且可以根据需要创建、管理和使用文件。

③服务用户(Service User):

服务用户是专门用于运行系统服务和守护进程的用户。
服务用户通常没有登录权限,它们的作用是限制服务进程的权限,以增加系统的安全性。
每个服务用户都与一个或多个特定的服务相关联,这些服务可以在后台运行并提供特定的功能。

④系统用户(System User):

系统用户是用于执行系统任务和特定应用程序的用户。
系统用户通常没有登录权限,它们被用来运行需要特定环境的任务和脚本。
与服务用户类似,系统用户的目的是限制其操作范围,提高系统的安全性和稳定性。
系统用户的UID范围为1到499。这些用户账户用于运行系统服务和进程,通常没有交互式登录权限。

⑤匿名用户(Anonymous User):

匿名用户是不需要身份验证即可访问某些服务或资源的用户。
常见的例子是FTP服务器上的匿名用户,允许用户通过匿名方式下载或上传文件。

1. 创建用户

格式:

useradd  选项   用户名

参数说明:

  • -d 目录 指定用户目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
  • -g 用户组 指定用户所属的用户组
  • -G 用户组 指定用户所属的附加组
  • -s Shell文件 指定用户的登录Shell
  • -u 用户号 指定用户的用户号,如果同时有 -o选项,则可以重复使用其他用户的标识号
  • -c:为用户添加注释,通常是用户的全名或描述。
    【案例一】创建一个名为"username"的用户,可以执行以下命令:
useradd username

【案例二】创建一个名为johndoe的用户,添加了一个注释为"John Doe",指定了/home/johndoe为家目录,并将默认shell设置为/bin/bash,可以执行以下命令:

useradd -c "John Doe" -d /home/johndoe -s /bin/bash johndoe

【案例三】分别创建三个新用户账号:aa、bb 和 cc,并将它们的用户ID(UID)设置为 555、556 和 557,这些用户将/a 作为家目录, 可以执行以下命令:

useradd -u 555 aa -d /a
useradd -u 556 bb -d /a
useradd -u 557 cc -d /a

注意

①执行useradd命令需要root或具有管理员权限的用户。
②使用 useradd 命令只会创建用户账户,但不会设置密码。通常需要使用 passwd 命令为新用户设置密码。

2.删除用户

格式:

userdel 选项 用户名

参数说明:

  • -r:删除用户的HOME主目录及其内容。不指定-r,删除用户时,HOME目录保留
  • -f:强制删除用户账户,即使用户正在登录或有其他进程。
    【案例一】要删除"username"用户及其主目录,可以执行以下命令:
userdel -r usrname

【案例二】分别删除用户账户 aa、bb 和 cc,并且同时删除与这些账户关联的家目录,可以执行以下命令:

userdel -r aa
userdel -r bb
userdel -r cc

3.查看用户

①id命令

显示当前用户的身份信息,包括用户ID(UID)、组ID(GID)以及所属的组。

格式:

id 用户名

②whoami 命令

查看当前登录用户的用户名:

whoami

在这里插入图片描述

③cat /etc/passwd 命令

查看系统中所有用户的详细信息 :
在这里插入图片描述
该命令会读取并显示 /etc/passwd 文件的内容,其中包含了用户账户的相关信息。每行的格式为:

username:password:UID:GID:gecos:directory:shell

注释:

  • username: 用户名
  • password: 加密后的密码(通常是 “x” 或 “*” 表示已在 /etc/shadow 文件中存储)
  • UID: 用户ID(唯一标识符)
  • GID: 主要组ID(与 /etc/group 中的组ID对应)
  • gecos: 用户的全名或注释字段
  • directory: 用户的主目录路径
  • shell: 用户默认的登录Shell
    通过运行 cat /etc/passwd 命令,可以查看和分析系统中所有用户的信息。

④getent passwd 命令

列出系统中所有用户的信息:

getent passwd

在这里插入图片描述

  • getent passwd 命令用于从系统的用户数据库中获取所有用户的信息。它会返回与 /etc/passwd 文件相同格式的输出,包含了系统中所有用户的详细信息。

  • 与 cat /etc/passwd 不同的是,getent passwd 命令可以从不仅限于 /etc/passwd 文件中,还包括其他用户数据库(如 NIS、LDAP 等)中获取用户信息。

⑤仅显示系统中所有用户名

cut -d: -f1 /etc/passwd

在这里插入图片描述

⑥ w命令:

显示当前登录系统的用户信息,包括用户名、终端、登录时间、运行的命令等。
在这里插入图片描述

4.修改用户属性

格式:

usermod [选项] 用户名

选项:

- -c, --comment:修改用户的注释。

  • -d, --home:修改用户的家目录路径。
  • -g, --gid:修改用户的主组ID。
  • -G, --groups:修改用户所属的附加组ID列表。
  • -s, --shell:修改用户的默认shell。
  • -L, --lock:锁定用户账号,禁止用户登录。
  • -U, --unlock:解锁用户账号,允许用户登录。
  • -e, --expiredate:修改用户的过期日期。
    【案例一】要将"username"用户所属的主组更改为"newgroup",可以执行以下命令:
usermod -g newgroup username

【案例二】将修改名为johndoe的用户的注释为"John Smith",家目录为/home/johnsmith,并将默认shell更改为/bin/bash。 可以执行以下命令:

usermod -c "John Smith" -d /home/johnsmith -s /bin/bash johndoe

【案例三】分别修改账号 aa、bb 和 cc 的家目录路径和登录shell:

对于账号 aa,将家目录路径修改为 /newhome1,登录shell修改为 /bin/bash。
对于账号 bb,将家目录路径修改为 /newhome2,登录shell修改为 /bin/sh。
对于账号 cc,将家目录路径修改为 /newhome3,登录shell修改为 /usr/bin/zsh。

usermod -d /newhome1 -s /bin/bash aa
usermod -d /newhome2 -s /bin/sh bb
usermod -d /newhome3 -s /usr/bin/zsh cc

【案例四】分别修改用户 aa 的家目录路径为 /newhome,修改用户 bb 的登录shell为 /bin/bash,以及修改用户 cc 的登录名为 newname ,可以执行以下命令:

usermod -d /newhome aa
usermod -s /bin/bash bb
usermod -l newname cc

5.切换用户

格式:

su [选项] [用户名]

选项:

  • -c, --command:执行指定的命令,而不是打开新的shell。
  • -l, --login:模拟登录为目标用户,加载用户的环境变量和配置文件。
  • -s, --shell:使用指定的shell,而不是目标用户的默认shell。
  • 【案例一】要切换到"username"用户,可以执行以下命令:
  su username

【案例二】切换到超级用户(root)身份,可以执行以下命令:

su

【案例三】切换到johndoe用户,并执行ls -l命令,可以执行以下命令:

su -c "ls -l" -l johndoe

6.设置用户密码:

使用passwd命令为用户设置密码。passwd命令是在Linux系统中用于更改用户密码的命令。它允许用户修改自己的密码或管理员修改其他用户的密码。

格式:

passwd [选项] [用户名]

选项

  • -l, --lock:锁定用户账户,禁止用户使用该账户登录。
  • -u, --unlock:解锁被锁定的用户账户。
  • -d, --delete:删除用户密码,使用户无法通过密码登录,但仍可使用其他身份验证方法登录。
  • -e, --expire:将用户的密码设置为过期状态,在下次登录时需要强制更改密码。
  • -x, --maxdays:设置用户密码的最大有效天数。
  • -n, --mindays:设置用户必须保持密码不变的最短天数。
  • -w, --warndays:在密码过期之前提前多少天向用户发出警告。
    ①更改当前用户密码
passwd

②更改特定用户的密码:

passwd 用户名

③锁定用户账户:

passwd -l 用户名

7.将用户添加到用户组:

使用usermod命令可以将用户添加到一个或多个用户组
【案例一】要将名为"username"的用户添加到"mygroup"用户组,可以执行以下命令:

usermod -aG mygroup username

8.从用户组中移除用户:


http://www.mrgr.cn/news/80297.html

相关文章:

  • 数据结构 ——树状存储的实现
  • 【自动驾驶】Ubuntu20.04安装ROS1 Noetic
  • 利用git上传项目到GitHub
  • 音频客观测评方法PESQ
  • 锡铅焊料中的金属元素分析
  • 方法引用和lambda表达式的奥妙
  • 05、GC基础知识
  • 【从零开始入门unity游戏开发之——C#篇11】一个标准 C# 程序介绍、新的值类型——枚举
  • spring实例化对象的几种方式(使用XML配置文件)
  • Golang囊地鼠gopher
  • 【教学类-83-01】20241215立体书三角嘴1.0——小鸡(正菱形嘴)
  • 修炼之道 --- 其二
  • LRM-典型 Transformer 在视觉领域的应用,单个图像生成3D图像
  • 将带注释的Word文档改造成点击注释引用即可弹窗显示注释的HTML文档
  • 学习Guava库 学习实用示例 实例 核心提纲
  • gorm源码解析(一):ORM概览
  • tryhackme——Defensive Security Intro(防御安全简介)
  • opencv小练习(未完成版)
  • google 的guava 学习 基本工具类
  • WPF 相比 winform 的优势
  • 一、windows上配置ninja环境
  • Leetcode 面试150题 399.除法求值
  • Windows 系统下 Python 环境安装
  • Ansible自动化运维(五) 运维实战
  • 域名信息收集(小迪网络安全笔记~
  • 2024.12.15CISCN长城杯铁人三项赛