Linux基础知识之用户和组

news2024/12/27 18:00:57

 Linux基础知识之用户和组

01

1.什么是用户

·用户账户为不同人员和运行的程序之间提供安全边界

·用户使用 username 进行标识,操作系统为其分配唯一标识号(UID),用户可能含有密码

·系统中的每个程序都以一个特定用户运行,每个文件都有一个特定用户作为所有者

·用户帐户有三种主要类型:超级用户(Superuser)、系统用户(System users)和普通用户(Regular users)

·superuser 就是 root 用户,UID=0,具有系统的最高权限

·system user 用于系统管理,例如运行服务,不需要用于系统登录

·regular user 供用户进行日常系统管理,通常具有权限限制

可以使用 id 命令查看当前登录的用户或某用户信息

[student@workstation ~]$ iduid=1000(student) gid=1000(student) groups=1000(student),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023        

ls -l 命令查看文件所属用户, ls -ld 命令查看目录所属用    

​​​​​​​

[student@workstation ~]$ ls -ldrwxr-xr-x. 2 student student     6 May 19  2023 Desktop

使用 ps 查看进程信息, -a 选项显示当前 terminal 进程, -u 选项显示进程关联的用户信息。

[student@workstation ~]$ ps -au USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND root        1530  0.0  0.0 220984  1084 ttyS0    Ss+  05:14   0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 - vt22 student     1620  0.0  0.1 377696  6792 tty2     Ssl+ 05:22   0:00 /usr/libexec/gdm-x-session --register-session --run-script gnome-se

虽然命令中显示用户名,但是系统中使用 UID 追踪用户, /etc/passwd 文件定义用户名和 UID 的关联关系

​​​​​​​

[student@workstation ~]$ grep student /etc/passwdstudent:x:1000:1000:Student User:/home/student:/bin/bash

·user01:此用户的用户名

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

·1000:此用户账户的 UID 编号

·1000:此用户账户的主要组的 GID 编号

·User One:此用户的简短注释、描述或真实姓名

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

·/bin/bash:此用户的默认 shell 程序,在登录时运行。一些账户使用 /sbin/nologin 来禁止该账户进行交互式登录

02

2.什么是组

·组是用户的集合,组中用户共享文件和其他系统资源的访问权限

·组有 group name 和 GID,匹配关系保存在 /etc/group 文件中[student@workstation ~]$ grep wheel /etc/groupwheel:x:10:student

wheel:此组的名称x:以前的组密码字段,现在是一个占位符10:此组的 GID 编号student:属于此组成员的用户列表,作为一个补充组

2.1 主要组和补充组  

·每个用户只属于一个 primary group,对应 GID 在 /etc/passwd 中

·创建新用户时同时创建同名的 primary group,用户作为此组的唯一用户

·用户还可以属于 supplementary groups,对应 GID 在 /etc/group 中

·同一组中的不同用户拥有组对文件的相同权限

·id 命令可以显示用户的组信息

[student@workstation ~]$ id            uid=1000(student) gid=1000(student) groups=1000(student),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

03

3.管理本地用户帐户

3.1 创建用户

·useradd  创建新用户及其组,并创建用户家目录和用户信息(暂无密码,无法登录)

·useradd \texttt{--help} 显示选项和参数,与 usermod 命令的选项参数一致

·/etc/login.defs 中定义新用户的 UID 范围和密码生命周期

表: useradd 以及 usermod 参数  

选项

用法

-a, --append

与 -G 选项一起使用将补充组添加到用户当前的组成员集合中

-c, --comment COMMENT

将 COMMENT 文本添加到注释字段

-d, --home HOME_DIR

为用户账户指定一个主目录

-u, --uid

用户 ID

-g, --gid GROUP

为用户账户指定主要组

-L, --lock

锁定用户账户

-m, --move-home

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

-s, --shell SHELL

为用户账户指定特定的登录 shell

-U, --unlock

解锁用户账户

3.2 删除用户

·userdel  删除用户,但是保留家目录

·userdel -r  删除用户和家目录

·rhel7 开始,普通用户的 UID 从 1000 开始

·find / -nouser -o -nogroup 可以搜索不属于任何用户和组的文件    

3.3 修改用户  

usermod, 其用法与参数参考 useradd

/etc/login.defs 中定义新用户的 UID 范围和密码生命周期  

04

4.UID 范围

·UID 0 永远分配给 root

·UID 1-200 分配给 system users(红帽的系统服务)

·UID 201-999 分配给 system users,供文件系统中没有自己的文件的系统进程使用。通常在安装需要它们的软件时,从可用池中动态分配它们。程序以这些 "无特权" 系统用户身份运行,它们仅访问运行所需的资源

·UID 1000+ 分配给普通非特权用户

05

5.管理本地组帐户

5.1 创建组

·groupadd 用于创建组groupadd -g 10000 group01 #创建普通组,注意GIDgroupadd -r group02 #创建系统组,注意GID

5.2 修改组

·groupmod 用于修改组groupmod -n group0022 group02

5.3 删除组

·groupdel 命令用于管理组。groupdel group0022    

5.4 从命令行更改组成员

·usermod -g 修改用户的 primary group

​​​​​​​

[root@workstation ~]# id user02            uid=1006(user02) gid=1008(user02) groups=1008(user02)            [root@workstation ~]# usermod -g group01 user02            [root@workstation ~]# id user02            uid=1006(user02) gid=10000(group01) groups=10000(group01)

·usermod -aG 修改用户的 supplementary group 补充组, -a 是 append 模式,如果只有 -G ,则是修改 supplementary group

[root@workstation ~]# id user03            uid=1007(user03) gid=1009(user03) groups=1009(user03)            [root@workstation ~]# usermod -aG group01 user03            [root@workstation ~]# id user03            uid=1007(user03) gid=1009(user03) groups=1009(user03),10000(group01)

    

→相关文章推荐:

  • Linux基础知识之man手册页

  • Linux基础知识之Linux文件系统权限

  • Linux基础知识之Shell命令行及终端中的快捷键

  • Linux基础知识之管理用户密码

  • Linux基础知识之使用 Shell 扩展匹配文件名

  • 超适合新手的基础Linux命令

更多linux相关学习,欢迎关注视频号:厦门微思网络


END

微思网络,始于2002年

专业IT认证培训22年,面向全国招生!


微思-主要课程有:

*网络技术:华为HCIA/ HCIP/HCIE;思科CCNA/CCNP/CCIE

*Linux技术:红帽 RHCE/RHCA

*K8S&容器:CKA/CKS

*数据库:ORACLE OCP/ OCM ;MySQL ;达梦数据库

*虚拟化:VMware VCP/VCAP

*安全认证:CISP体系/CISSP/ CISA;CCSK;CISAW体系

*管理类:PMP 项目管理;软考中/高项;ITIL体系;Togaf

其他课程如:ACP;Azure...

— Linux文章推荐 —

【资料领取】200个Linux常用命令手册

《鸟哥Linux私房菜》全新完整中文版PDF

40 个简单又有效的 Linux Shell 脚本示例

linux运维必备,100道常见面试题

超强linux学习笔记,值得一看(附PDF下载)

红帽认证有什么优势?速看本文

5 种 Linux 安装包管理工具中文手册!抓紧看!

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

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

相关文章

上/下三角矩阵的压缩存储

1.给自己出题:自己动手创造,画一个5行5列的下三角矩阵 2.画图:按“行优先”压缩存储上述矩阵,画出一维数组的样子 3.简答:写出元素 i,j 与 数组下标之间的对应关系 4.画图:按“列优先”压缩存储上述矩阵…

【卷起来】VUE3.0教程-06-组件详解

各位看官,点波关注和赞吧 组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构: 这和我们嵌套 HTML 元素的方式类似,Vue 实现了自己的…

ssrf漏洞利用+CTF实例

引发ssrf漏洞的几个函数 file_get_contents() 把整个文件读入一个字符串中,获取本地或者远程文件内容fsockopen() 获得套接字信息curl_exec() 执行一个curl会话,由curl_init()初始化一个新的会话,返回一个curl句柄fopen() 打开文件或者URLre…

【数据结构与算法 | 灵神题单 | 插入链表篇】力扣2807, LCR 029, 147

1. 力扣2807:在链表中插入最大公约数 1.1 题目: 你一个链表的头 head ,每个结点包含一个整数值。 在相邻结点之间,请你插入一个新的结点,结点值为这两个相邻结点值的 最大公约数 。 请你返回插入之后的链表。 两个…

前端开发macbook——NVM环境配置以及git配置流程

本文主要针对前端使用mac电脑时需要安装nvm对应环境,一文解决环境安装问题 主要步骤如下: 安装homebrew 安装nvm 安装git 第一步:安装homebrew /bin/bash -c "$(curl -fsSL https:/raw.githubusercontent.com/Homebrew/install/HE…

C++基础(七):类和对象之深浅拷贝问题(中-3)

在C编程中,拷贝构造函数是对象复制的核心机制,尤其是在处理对象间的值传递时。当一个对象通过拷贝另一个对象来初始化时,浅拷贝只是简单地复制对象的成员变量的值。如果对象包含指针成员,浅拷贝只复制指针地址,这可能会…

基于matlab交通标志识别系统用的APP designer设计的gui界面 交互原理:bp神经网络-训练好图像处理有灰度化-二值化-颜色区域定位识别

基于MATLAB的交通标志识别系统是一个实用的工具,用于识别道路交通标志。该系统结合了图像处理技术和BP神经网络模型,可以在给定的图像中定位并识别交通标志。通过使用MATLAB的App Designer工具,系统还提供了一个交互式的图形用户界面&#xf…

【idea-安装】

JetBrains官⽹ : https://www.jetbrains.com/ 1.下载idea安装包,下载旧一些的版本,避免新版本的不稳定。 下载下来的安装包是exe格式的,直接点击运行。 点击Next 2.选择要下载的位置,点击下一步。 3.选择⽣成快捷⽅式和建⽴⽂件…

从头开始学MyBatis—01搭建基础框架

首先对mybatis进行一个简单的介绍,然后从最基础的准备工作开始搭建一个mybatis的开发 环境,最后通过简单的增删改查来熟悉配置文件和映射文件的编写。 目录 1.Mybaits简介 2.开发环境和准备工作 2.1开发环境 2.2pom文件 2.3数据库和表 2.4对应实体…

探索Python世界的隐藏宝石:Pika库的神秘力量

文章目录 探索Python世界的隐藏宝石:Pika库的神秘力量背景:为何选择Pika?Pik库简介如何安装Pika?简单库函数使用方法场景应用常见Bug及解决方案总结 探索Python世界的隐藏宝石:Pika库的神秘力量 背景:为何…

【机器学习】8 ——朴素贝叶斯

机器学习 8 ——朴素贝叶斯 特征条件独立假设 朴素是指每个特征独立地影响结果,整个假设在实际应用中不成立,主要是思想 输入输出的来拟合概率分布,贝叶斯定理,后验概率最大 文章目录 机器学习 8 ——朴素贝叶斯前言贝叶斯定理先…

vue2使用ag-grid表格

ag-grid官网:Vue Grid: Custom Components | AG Grid 根据官方文档说的AG Grid no longer supports Vue 2. The last version to support Vue 2 is AG Grid v31.3.,目前只有v31.3.版本支持vue2。 以下是官方给的demo Vue Grid: Get Started with AG G…

C# WPF编程-串口通信

C# WPF编程-串口通信 串口通信1. NuGet安装System.IO.Ports2. 界面布局XAML3. C#代码4. 运行效果源码下载 串口通信 1. NuGet安装System.IO.Ports 2. 界面布局XAML <Window x:Class"BlocksTools.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006…

Python 从入门到实战15(字符串其它操作)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们通过举例学习了字符串一些操作说明。今天继续讨论字符…

Java数组08:ArrayList简介

本节内容视频链接&#xff1a; Java关于ArrayList的简单用法与介绍_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1CC4y177CW/?spm_id_from333.337.search-card.all.click&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5Java的ArrayList简介_哔哩哔哩_bilibilihttps:…

Leetcode面试经典150题-27.移除元素

解法都在代码里&#xff0c;不懂就留言或者私信 超级简单的题&#xff0c;一般出现在笔试里&#xff0c;但是不知道为啥字节高频题里会排的那么靠前 class Solution {public int removeElement(int[] nums, int val) {/**如果数组为空&#xff0c;没什么可操作的&#xff0c;…

产业园服务体系建设,是否已全面覆盖企业成长的每一个阶段?

在当今竞争激烈的商业环境中&#xff0c;产业园作为企业发展的重要载体&#xff0c;其服务体系的完善程度至关重要。那么&#xff0c;产业园服务体系建设&#xff0c;是否已全面覆盖企业成长的每一个阶段呢&#xff1f; 从企业的初创期来看&#xff0c;产业园可以提供办公场地的…

【JUC】15-ThreadLocal线程局部变量

1. ThreadLocal ThreadLocal提供线程局部变量。每个线程在访问ThreadLocal实例的时候都有自己的、独立的变量副本。ThreadLocal实例通常是类中的私有静态字段&#xff0c;使用它的目的是希望将状态(用户ID或事务ID)与线程关联起来。 class Saler {ThreadLocal<Integer> …

基于Boost库的搜索引擎开发实践

目录 1.项目相关背景2.宏观原理3.相关技术栈和环境4.正排、倒排索引原理5.去标签和数据清洗模块parser5.1.认识标签5.2.准备数据源5.3.编写数据清洗代码parser5.3.1.编写读取文件Readfile5.3.2.编写分析文件Anafile5.3.2.编写保存清洗后数据SaveHtml5.3.2.测试parser 6.编写索引…

HPM6E00:PWM V2使用指南

先楫推出的HPM6E00系列芯片&#xff0c;PWM功能升级到了V2版本。和V1版本不同的是&#xff0c;V2版本的每组PWM模块包含4个独立的PWM生成模块&#xff0c;每个PWM生成模块包含一个counter和4个比较器&#xff0c;可以生成4组频率不同的PWM波。每个PWM生成模块&#xff0c;对应生…