管理Linux本地用户和组

news2024/11/14 15:24:21

什么是用户

用户账户在可以运行命令的不同人员和程序之间提供安全界限。

在Linux系统中,系统通过分配唯一的标识号(用户ID或UID)来区分不同的用户帐户。

在Linux系统中,用户帐户有以下三种主要类型:

  1. 超级用户

负责管理系统。超级用户的名称为root。UID为0,具有完全的系统访问权限。

  1. 系统用户

供提供支持服务的进程使用。用户无法使用系统用户帐户以交互式方式登录。

  1. 普通用户。

普通用户对系统具有有限的访问权限。

使用id命令可显示有关当前已登录用户的信息;

[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# id user
uid=1000(user) gid=1000(user) groups=1000(user)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

使用ls命令-l选项可以查看文件的所有者。

对以上字段的说明:

drwxr-xr-x. 表示权限,d表示为文件夹,通常为3段,第一段为user,第二段为group,第三段为others,它们的最高权限位rwx.

1 第二列内容表示链接

第三列root表示该文件或者文件夹的拥有者为root,即所属用户。

第四列root表示该文件或者文件夹的所属组为root,即所属组。

第五列表示文件的大小。

Jul 8 14:10 表示文件或者文件夹的修改时间。

最后一列表示文件名称或者文件夹名称。

默认情况下,系统使用/etc/passwd文件存储有关本地用户的信息。

user 此用户的用户名;

x: 用户的加密密码存储在这里,是一个占位符;

1000: 此用户帐户的UID编号;

1000: 此用户帐户的主要组的GID编号;

user: 此用户的简短注释、描述;

/home/user: 用户的主目录,以及登录shell启动时的初始工作目录;

/bin/bash: 此用户的默认shell程序,在登录时运行。

用户相关文件
  • /etc/passwd:存储用户账户信息的文件。
  • /etc/shadow:存储用户密码及其相关信息的文件。
  • /etc/group:存储组信息的文件。

常用用户管理命令:

useradd:创建或添加一个新用户。

useradd 命令可以创建名为username的用户(username替换为实际创建的用户名)。它会设置用户的主目录和帐户信息,并为该用户创建一个私有组。

在rhel9中,useradd命令为新用户分配第一个大于或等于1000的可用UID,除非通过-u选项进行明确指定。

[root@localhost ~]# useradd user
[root@localhost ~]# id user 
uid=1002(user) gid=1005(user) groups=1005(user)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

usermod用于修改用户的各项参数信息。

usernod --help命令显示用于修改帐户的基本选项。

usermod选项

用法

-a --append

与-G选项一起使用将补充组添加到用户当前的组成员集合中,而不是将补充组集合替换为新的集合。

-c --comment COMMENT

将COMMENT文本添加到 注释字段。

-d,--home HOME_DIR

为用户帐户指定一个主目录。

-g,--gid GROUP

为用户帐户指定主要组。

-G

为用户帐户指定补充组的逗号分隔列表。

-L, --lock

锁定用户帐户。

-u,--unlock

解锁用户帐户。

-m

将用户的主目录移到新的位置。必须将其与-d选项搭配使用。

-s

为用户帐户指定特定的登录shell。

[root@localhost ~]# mkdir /alex_home 
[root@localhost ~]# usermod -d /alex_home alex    #为用户指定新的主目录;

[root@localhost ~]# usermod -u 8286 alex     #为用户指定UID
[root@localhost ~]# id alex 
uid=8286(alex) gid=1000(alex) groups=1000(alex)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
[root@localhost ~]# usermod -L alex  #锁定用户帐户

  

[root@localhost ~]# usermod -U alex  #解锁用户帐户
[root@localhost ~]# usermod -aG docker alex  #将用户添加到docker组中

userdel 命令从/etc/passwd中删除用户的详细信息,但用户的主目录保持不变。userdel -r 命令从/etc/passwd中删除用户,同时删除用户的主目录。

[root@localhost ~]# userdel -r alex
[root@localhost ~]# cat /etc/passwd | grep alex

删除用户不指定userdel -r选项的情况删除用户,会造成信息泄露。

passwd 命令可为username用户设置初始密码,或更改其现有的密码。

root用户可以将密码设置为任何值, 普通用户必须选择至少八个字符长的密码。不要使用字典词语、用户名或旧密码。

UID范围

UID 0: 超级用户root帐户UID。

UID 1-200: 静态分配给系统进程的系统帐户UID。

UID 201-999: 分配给不拥有此系统上文件的系统进程的UID。需要非特权UID的软件将会从这个可用池中动态分配UID。

UID 1000+: 分配给普通非特权用户的UID范围。

切换用户

通过使用su命令,用户可以切换至另外一个用户帐户。

如果从一个普通用户切换到另外一个普通用户,或者从普通用户切换到超级用户root,则需要提供要切换到的帐户的密码。以root用户身份切换普通用户时,则无需输入用户密码。

[user@localhost ~]$ su - alex
Password: 
[alex@localhost ~]$ su root
Password: 
[root@localhost alex]# su - user

 如果普通用户切换用户时省略用户名,默认情况下su或su -命令会尝试切换到root。

[alex@localhost ~]$ su -
Password: 
[root@localhost ~]#

su 和 su -区别:

  • su 切换用户但保持当前环境。
  • su - 切换用户并加载新用户的完整登录环境。

sudo命令在Linux中用于以超级用户或另一个用户的权限执行命令。它允许受限权限的用户执行需要更高权限的命令,而无需切换到超级用户身份。

与su命令不同,sudo通常要求用户输入其自己的密码以进行身份验证,而不是输入他们正尝试访问的用户帐户的密码。

下表总结了su、su - 和sudo命令之间的区别:

su

su -

sudo

成为新用户

依据升级的命令

环境

当前用户的

新用户的

当前用户的

需要密码

新用户的

新用户的

当前用户的

特权

与新用户相同

与新用户相同

由配置定义

记录的活动

仅su命令

仅su命令

依据升级的命令

管理本地组

 组是用户的集合,用于简化对多个用户的权限管理。同一组内的用户可以共享对某些文件或目录的访问权限。

groupadd命令用于创建组。

[root@localhost ~]# groupadd group01
[root@localhost ~]# cat /etc/group | grep group01
group01:x:1000:

groupadd命令-g选项指定供组使用的特定GID。

[root@localhost ~]# groupadd -g 2024 group02
[root@localhost ~]# cat /etc/group | grep group02
group02:x:2024:

groupadd命令-r选项用于创建系统组。

[root@localhost ~]# cat /etc/group | grep group03
group03:x:978:

普通组是由系统管理员创建的,用于将多个用户组织在一起,以便共享文件和资源。普通组的ID(GID)通常在500(有些系统是1000)以上,这取决于系统配置。

系统组是系统默认创建的,用于分配系统进程和服务的权限。系统组的ID(GID)通常在0到499(或999)之间,这取决于系统配置。

groupmod命令可更改现有组的属性。

groupmod命令-n选项可指定组的新名称。

[root@localhost ~]# groupmod -n group22 group01
[root@localhost ~]# cat /etc/group | grep group22
group22:x:1000:

groupmod -g选项可指定新的GID。

[root@localhost ~]# cat /etc/group | grep group02
group02:x:2024:
[root@localhost ~]# groupmod -g 20000 group02
[root@localhost ~]# cat /etc/group | grep group02
group02:x:20000:

groupdel命令可删除组。

[root@localhost ~]# groupdel group03
[root@localhost ~]# cat /etc/group | grep group03

如果组是现有用户的主要组,则无法删除它。与使用userdel命令类似,首先检查以确保找到该组拥有的文件。

组成员资格通过用户管理进行控制。使用usermod -g命令来更改用户的主要组。

[root@localhost ~]# id user02
uid=1002(user02) gid=1002(user02) groups=1002(user02)
[root@localhost ~]# usermod -g group01 user02
[root@localhost ~]# id user02
uid=1002(user02) gid=1003(group01) groups=1003(group01)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1925516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨平台APP开发工具的选择

跨平台APP开发工具允许开发者编写一次代码,然后在多个平台上运行,如iOS、Android等,这极大地提高了开发效率并降低了维护成本。下面是一些流行的跨平台APP开发工具及其特点: React Native 开发公司:Facebook编程语言:JavaScript特点: 使用React的组件模型构建原生应用。…

无损音乐播放器推荐:Audirvana for Mac 中文激活版

udirvana 是一款高品质的音乐播放软件,专为Mac操作系统设计。它被设计来提供音频播放的最高标准,支持多种音频格式,包括高达32位/192kHz的高分辨率音频。Audirvana Plus 是其高级版本,提供了更多的功能和优化,例如音频…

stm32h743 NetXduo 实现http server CubeIDE+CubeMX

在这边要设置mpu的大小,要用到http server,mpu得设置的大一些 我是这么设置的,做一个参考 同样,在FLASH.ld里面也要对应修改,SECTIONS里增加.tcp_sec和 .nx_data两个区,我们用ram_d2区域去做网络,这个就是对应每个数据在d2区域的起点。 在CubeMX里,需要用到filex、dhc…

全栈智能家居系统设计方案:STM32+Linux+多协议(MQTT、Zigbee、Z-Wave)通信+云平台集成

1. 项目概述 随着物联网技术的快速发展,智能家居系统正在成为现代生活中不可或缺的一部分。本文介绍了一个基于STM32微控制器和Linux系统的智能家居解决方案,涵盖了硬件设计、软件架构、通信协议以及云平台集成等方面。 该系统具有以下特点: 采用STM32作为终端设备的控制核心…

【python学习】python标准库之正则表达式库re的定义、功能和函数,以及正则表达式的元字符和含义

引言 re 库是Python标准库的一部分,不需要额外安装。要使用 re 库,只需在代码中导入它 文章目录 引言一、re库的定义二、re 库中常用的功能和函数:2.1 搜索模式2.2 查找模式2.3 替换模式2.4 分割模式2.5 编译模式2.6 错误信息2.7 支持的模式2…

基础部分-变量

目录 1、一个程序就是一个世界,变量是程序的基本组成单位。 2、变量有三个基本要素:类型名称值 3、变量相当于内存中一个数据存储空间的表示 4、变量的使用步骤 (先定义后使用) 5、变量快速入门 6、格式化输出 7、程序中 号…

链接追踪系列-07.logstash安装json_lines插件

进入docker中的logstash 容器内: jelexbogon ~ % docker exec -it 7ee8960c99a31e607f346b2802419b8b819cc860863bc283cb7483bc03ba1420 /bin/sh $ pwd /usr/share/logstash $ ls bin CONTRIBUTORS Gemfile jdk logstash-core modules tools x-pack …

【Linux】进程控制的详细介绍

前言 在此之前,我们学过进程的概念,进程的状态,进程地址空间等一系列进程相关的问题。本章我们继续学习进程,我们要来学习一下进程的控制,关于进程等待,等问题。 目录 1.再次认识Fork函数1.1 fork()之后操…

什么是 Modbus协议?

一、网络中的协议是指什么? 网络协议是网络通信中至关重要的一部分,它定义了网络中两个或多个设备之间通信的规则、过程和格式。这些规则确保了计算机网络设备能够使用一种通用语言来传输和接收数据,而不管它们的设计、硬件或基础设施如何。…

MySQL-ubuntu环境下安装配置mysql

文章目录 什么是数据库?一、ubuntu环境下安装mysql二、配置mysql配置文件1.先登上root账号2.配置文件的修改show engines \G; mysql和mysqld数据库的基础操作登录mysql创建数据库显示当前数据库使用数据库创建表插入students表数据打印students表数据select * from …

【吊打面试官系列-ZooKeeper面试题】说说客户端注册 Watcher 实现?

大家好,我是锋哥。今天分享关于 【说说客户端注册 Watcher 实现? 】面试题,希望对大家有帮助; 说说客户端注册 Watcher 实现? 1、调用 getData()/getChildren()/exist()三个 API,传入 Watcher 对象 1000道…

数据结构(Java):树二叉树

目录 1、树型结构 1.1 树的概念 1.2 如何判断树与非树 1.3 树的相关概念 1.4 树的表示形式 1.4.1 孩子兄弟表示法 2、二叉树 2.1 二叉树的概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 二叉树的遍历 1、树型结构 1.1 树的概念 树型结构是一种非线…

文本分类--NLP-AI(八)

文本分类任务 任务简介1.字符数值化方式1方式2 2.池化(pooling)3.全连接层4.归一化函数(Sigmoid)5.总结 从任务抽象新的技术点Embedding层池化层 任务简介 任务介绍: 字符串分类,根据一句话的含妈量&#…

air-conditioning

air-conditioning 空调机安装 实地测量: 测量宽度 测量高度 测试厚度 其他位置测量 根据实际绘图: 改进图,哈哈,让自己满意也让别人满意 1)需要考虑安装位置,减少高空放置,放置高空掉落 2&#…

YOLOv5和LPRNet的车牌识别系统

车牌识别系统 YOLOv5和LPRNet的车牌识别系统结合了深度学习技术的先进车牌识别解决方案。该系统整合了YOLOv5目标检测框架和LPRNet文本识别模型 1. YOLOv5目标检测框架 YOLO是一种先进的目标检测算法,以其实时性能和高精度闻名。YOLOv5是在前几代基础上进行优化的…

Mac应用程序清理卸载工具:App Cleaner Uninstaller for Mac 中文版

App Cleaner Pro是一款Mac上非常好用的软件卸载工具,支持应用卸载、Widget卸载、浏览器插件卸载,支持拖拽卸载和列表卸载,能够非常干净的卸载应用,节省你的磁盘空间。App Cleaner Uninstaller Pro是一款深度清理和卸载的工具&…

Postman下载及使用说明

Postman使用说明 Postman是什么? ​ Postman是一款接口对接工具【接口测试工具】 接口(前端接口)是什么? ​ 前端发送的请求普遍被称为接口 ​ 通常有网页的uri参数格式json/key-value请求方式post/get响应请求的格式json 接…

uboot默认配置过程

uboot默认配置,对于6ull来说,在uboot源码目录下执行:make mx6ull_14x14_evk_defconfig 1、make mx6ull_14x14_evk_defconfig mx6ull_14x14_evk_defconfig文件是在uboot源码configs/目录下面 执行过程分析 HOSTCC:编译一些.c文件 HOSTLD:制作出scripts/kconfig/conf这个…

[数仓]十二、离线数仓(Atlas元数据管理)

第1章 Atlas入门 1.1 Atlas概述 Apache Atlas为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,并为数据分析师和数据治理团队,提供围绕这些数据资产的协作功能。 Atlas的具体功能如下: 元数据分类 支持对元数据进行分类管理,例…

【GD32】从零开始学GD32单片机 | WDGT看门狗定时器+独立看门狗和窗口看门狗例程(GD32F470ZGT6)

1. 简介 看门狗从本质上来说也是一个定时器,它是用来监测硬件或软件的故障的;它的工作原理大概就是开启后内部定时器会按照设置的频率更新,在程序运行过程中我们需不断地重装载看门狗,以使它不溢出;如果硬件或软件发生…