Linux的用户管理精简全总结

news2024/11/15 21:26:32

 (该图由AI绘制 关注我 学习AI画图)

目录

Linux操作系统用户和组的概念

1、为什么需要了解用户和组

2、用户和组的关系

3、用户组操作

☆☆☆☆☆☆☆☆☆☆☆ /etc/group文件解析

☆ 用户组的修改

☆ 用户组的删除

4、用户操作

☆ 用户信息查询

5、与用户相关的用户文件

6、用户修改操作

7、passwd命令

8、su命令

9、wheel组(了解)

10、用户删除操作


Linux操作系统用户和组的概念

1、为什么需要了解用户和组

服务器要添加多账户的作用

针对不同用户分配 不同的权限 ,不同权限可以限制用户 可以访问到的系统资源 ​ 提高系统的安全性 ​ 帮助系统管理员对使用系统的用户进行跟踪

2、用户和组的关系

理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。

主组只能拥有一个,但是附属组或附加组可以同时拥有多个

3、用户组操作

# groupadd [选项]  用户组的组名称
选项说明:
-g :代表用户组的组ID编号,自定义组必须从1000开始,不能重复

案例:在系统中添加一个hr的用户组

# groupadd hr

案例:在系统中添加一个test的用户组并指定定编号1100

# groupadd -g 1100 test

问题:我们刚才创建的hr以及test用户组到底添加到哪里了?

答:默认情况下,我们添加的用户组都会放在一个系统文件中,文件位置=>/etc/group

☆☆☆☆☆☆☆☆☆☆☆ /etc/group文件解析

由以上命令的执行结果可知,在/etc/group文件中,其一共拥有三个冒号,共四列。每列含义:

第一列:用户组的组名称
第二列:用户组的组密码,使用一个x占位符
第三列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500...
CentOS7 => 1-999,1000...
第四列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)

☆ 用户组的修改

# groupmod [选项 选项的值] 原来组的组名称
选项说明:
-g :gid缩写,设置一个自定义的用户组ID数字,1000以后
-n :name缩写,设置新的用户组的名称

案例:把hr用户组更名为szhr (举这个例子就是想说,可以单独使用)

# groupmod -n szhr hr

案例:把itcast组的组名称更改为admin且用户组的组编号更改为1004

# groupmod -g 1004 -n admin itcast

☆ 用户组的删除

# groupdel test

4、用户操作

# useradd [选项 选项的值] 用户名称
选项说明:
-g :代表添加用户时指定用户所属组的主组,唯一的组信息(重要)
-s :代表指定用户可以使用的Shell类型,默认为/bin/bash(拥有大部分权限)

        还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。
        /bin/bash => 给人使用的(运维工程师)
        /sbin/nologin => 给软件使用的

————————————————

-G :代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)
-u :代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解)
-c :代表用户的备注信息
-d :代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改
-n :取消建立以用户名称为名的群组(了解)



案例:在系统中创建一个linuxuser账号

# useradd linuxuser

问题:我们并没有为linuxuser账号指定所属的主组,可以成功创建账号么?

答:可以,因为在创建账号时,如果没有明确指定用户所属的主组,默认情况下,系统会自动在用户组中创建一个与用户linuxuser同名的用户组,这个组就是这个用户的主组。

问题:刚才创建的linuxuser账号能不能用于登录操作系统

答:不行,因为Linux的登录账号 必须要求有密码 ,如果一个账号没有密码是无法登录操作系统的。

案例:在系统中创建一个账号zhangsan,指定用户所属的主组为aaa

第一步:查询一下aaa的组ID编号
# tail -5 /etc/group
aaa:x:1000:


第二步:根据组的编号添加用户
# useradd -g 1000 zhangsan

☆ 用户信息查询

主要功能:查询某个指定的用户信息

案例:查询linuxuser用户的信息

# id linuxuser
uid=1002(linuxuser) gid=1005(linuxuser) groups=1005(linuxuser)


uid:用户编号
gid:用户所属的主组的编号
groups:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息

5、与用户相关的用户文件

用户:/etc/passwd文件,每创建一个用户,其就会在此文件中追加一行

# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
由上图可知,一共拥有7列
第1列:用户名称
第2列:用户的密码,使用一个x占位符,真实密码存储在/etc/shadow(1-用户名,2-加密密码)
第3列:数字,用户的ID编号
第4列:数字,用户的主组ID编号
第5列:代表注释信息,useradd -c "备注信息" 用户名称
第6列:用户的家目录,默认在/home/用户名称
第7列:用户可以使用的Shell类型,useradd -s /bin/bash或/sbin/nologin 用户名称

6、用户修改操作

# usermod [选项 选项的值] 用户名称
选项说明:
-g :修改用户所属的主组的编号
-l :login name修改用户的名称
-s :修改用户可以使用的Shell类型,如/bin/bash => /sbin/nologin

扩展:
-L:锁定用户,锁定后用户无法登陆系统lock
-U:解锁用户unlock

了解:
-G :修改用户附属组的编号信息
-d :修改用户的家目录
-c :修改用户的备注信息

案例:修改zhangsan账号信息,更名为zs

# usermod -l zs zhangsan

案例:修改wangwu账号信息,把用户的主组的编号更新为1000

# usermod -g 1000 wangwu

案例:禁止linuxuser账号登录Linux操作系统 (其实就是修改用户可以使用的Shell类型)

# usermod -s /sbin/nologin linuxuser

案例:禁止linux用户登录操作(Ctrl + Alt + F2 ~ F6)

# usermod -L linux

案例:解锁linux用户

# usermod -U linux

问题:账号已经解锁,但是无法登录

① 当前账号没有设置密码,因为Linux操作系统不允许没有密码的操作进行登录

② 当前用户的Shell类型为/sbin/nologin,所以其无法登录

7、passwd命令

主要功能:为某个用户设置密码(添加或修改),可以给自己也可以给别人设置

8、su命令

主要功能:切换用户的账号

# su [-] root
选项:
- :横杠(减号),代表切换用户的同时,切换目录到用户的家

9、wheel组(了解)

Linux系统中,理论上只有在wheel组中的普通用户,才可以通过su命令切换到root账户,默认所有普通用户都能切换到root,只要知道root密码,换句话说,默认此配置不生效

10、用户删除操作

# userdel [选项] 用户名称
选项说明:
-r :删除用户的同时,删除用户的家(默认不删除)

# userdel -r lisi

————— 本文完 —————

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

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

相关文章

VSCode 提示 1.16.15 版本的Go,不支持 gopls v.0.13.0

Go1.16.15无法使用 goplsv.0.13.0 问题详情解决办法 问题详情 Gopls was built with Go version 1.16, which will be unsupported by gopls v0.13.0. Please upgrade to Go 1.18 or later and reinstall gopls. If you cant upgrade and want this message to go away, pleas…

FPGA实现二进制转BCD码

1、简介 bcd码:以4bit二进制码表示一个十进制码 例如,432(d) 0100-0011-0010(bcd) 这里具体的判断方法为:(满5)加3法 二进制位宽为W,则BCD位宽只需要&…

JS 实现CSV文件转换SQL文件小工具

一. 需求 最近在项目中遇到一个问题,客户提供的数据是CSV格式的, 需要将CSV文件中的数据转换为SQL语句文件。 😅由于本人不会Excel的vba编程,因此决定使用JS来实现。 二. 实现思路 提供一个文件上传框,支持多文件上…

微信小程序全局配置详解

通过全局配置实现的效果 开发者 微信公众平台 登录网址 https://mp.weixin.qq.com/ 注册网址 https://mp.weixin.qq.com/cgi-bin/wx?token&langzh_CN 微信小程序开发者工具 下载地址 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 小…

WPF grid控件定义行和列

在此已经学习了wpf Grid控件&#xff0c; WPF布局控件Grid的基本使用 - 使用kaxaml_bcbobo21cn的博客-CSDN博客 下面继续学习&#xff1b; 定义3行3列的基本代码如下&#xff1b;为了看清效果&#xff0c;设置 ShowGridLines"True"&#xff1b; <Grid ShowGrid…

Tkinter_鼠标选中样式

前言 使用tkinter库创建窗口应用程序示例&#xff0c;包含不同鼠标样式标签。 一、方法 import tkinter as tkclass Mouse_Style:def __init__(self):self.root tk.Tk()self.root.title(样式)self.root.geometry("200x5201100150")self.interface()def interface(…

【G431】多路ADC+DMA采集

文章目录 前言1.CubeMx的配置步骤3.测试代码4.演示效果 总结 前言 之前蓝桥杯程序中使用的是查询方式的ADC&#xff0c;缺点是当采集通道多的时候会导致CPU速率变低从而导致查询ADC代码之后的程序会被阻塞。而DMA就不会&#xff0c;DMA会绕开CPU直接传输。 1.CubeMx的配置步骤…

GDB 查看、修改变量

1、info args : 查看函数的入参内容 2、set print null-stop :遇到无效的字符就不显示出来了 3、set print pretty :让结构体以定义的形式展示出来&#xff0c;一个字段一行 4、 set print arry on :让数组中的元素每个占一行显示 5、 p sizeof(xxx) : 查看xxx的大小&#xff…

STM32 DSP库CUBEMX配置+FFT频率计算

文章目录 前言一、DSP库添加1.1 加一个define1.2 添加文件路径1.3 主函数 二、FFT运算求频率2.1 初始版本版本2 总结 前言 使用DSP中的函数加快计算。 本文首先讲述如何通过添加dsp库。 再讲述使用DSP库进行实数FFT运算。&#xff08;FFT运算用到了前面讲述的STM32CubeMX-ADC …

mysql 安装

常用存储引擎功能对比&#xff1a; mysql 安装流程&#xff1a; 如果直接本地安装&#xff0c;就只需要安装好然后配置环境变量就行了&#xff0c;my.ini文件会自动帮你写好&#xff0c;如果是zip压缩包安装就需要自己写my.ini文件&#xff0c;下面详细介绍zip压缩包安装 下载…

提示工程的前世今生

原文链接&#xff1a;芝士AI吃鱼 通过提示进行情境学习 在生物学中&#xff0c;涌现是一种令人难以置信的特性&#xff0c;由于相互作用的结果&#xff0c;各个部分聚集在一起&#xff0c;表现出新的行为&#xff08;称为涌现&#xff09;&#xff0c;这是你在较小的尺度上看不…

分别基于红黑树、timefd、多级时间轮实现定时器

文章目录 一、定时器的应用二、定时器的触发方式2.1 网络事件和定时事件在一个线程中处理2.2 二、定时器的设计2.1 接口设计2.2 数据结构设计2.2.1 红黑树2.2.3 最小堆2.2.4 时间轮 三、利用红黑树实现定时器3.1 数据结构3.2 接口实现3.2.1 初始化定时器3.2.2 添加定时器3.2.3 …

【CPU】关于x86、x86_64/x64、amd64和arm64/aarch64

为什么叫x86和x86_64和AMD64? 为什么大家叫x86为32位系统&#xff1f; 为什么软件版本会注明 for amd64版本&#xff0c;不是intel64呢&#xff1f; x86是指intel的开发的一种32位指令集&#xff0c;从386开始时代开始的&#xff0c;一直沿用至今&#xff0c;是一种cisc指令…

Github 标星68.5K,不愧是阿里P8架构师整理的 Java 面试复盘笔记

Java 面试 2021 已经过半&#xff0c;不知道大家在今年的金三银四是否拿到了自己理想的 Offer&#xff1f;大家的技术面一共面了多少轮&#xff1f;作为一名程序员&#xff0c;技术面试是不可避免的一个环节&#xff0c;一般技术面试官都会通过自己的方式去考察程序员的技术功…

Java性能诊断利器:arthas详细教程

目录 1.概述 2.使用 2.1.安装使用 2.2.启动 2.3.全局监控 2.4.方法级别的监控 2.4.1.插件 2.4.2.watch 2.3.3.trace 2.3.4.stack 2.4.线上问题定位 2.4.1.反编译 2.4.2.CPU占用率 2.4.3.死锁 1.概述 arthas是Alibaba推出的一款JVM性能诊断调优工具&#xff0c;主…

C++之代理模式

目录 模式思想 简介 组成 优点 代码实现 情景 如果不使用代理的话&#xff1a; 加代理的话&#xff1a; 结果 模式思想 简介 代理模式&#xff1a; 通过代理类&#xff0c;来控制实际对象的访问权限。 在某些情况下&#xff0c;一个对象不适合或者不能直接引用另…

深入理解java虚拟机精华总结:硬件的效率与一致性、Java内存模型、Java与线程、Java与协程

深入理解java虚拟机精华总结&#xff1a;硬件的效率与一致性、Java内存模型、Java与线程、Java与协程 硬件的效率与一致性Java内存模型主内存与工作内存内存间交互操作对于volatile型变量的特殊规则针对long和double型变量的特殊规则原子性、可见性与有序性原子性可见性有序性 …

数学建模之灰色预测方法

数学建模之灰色预测方法 目录灰色关联度矩阵关联系数关联矩阵 GM(1,1)模型相关原理matlab程序 目录 灰色关联度矩阵 关联系数 计算关联系数公式 步骤 第一步 第二步 求参考数列和待比较数列矩阵数值做差之后的最小值和最大值 第三步利用公式计算关联度系数&#xff0c;其中将…

【C++修炼之路】32.智能指针

每一个不曾起舞的日子都是对生命的辜负 智能指针 一.为什么需要智能指针&#xff1f;二.智能指针解决new抛异常的示例三.智能指针的使用及其原理3.1 RAII3.2 SmartPtr存在的问题3.3 std::auto_ptr3.4 std::unique_ptr3.5 std::shared_ptrstd::shared_ptr的基本设计std::shared_…

海明码(汉明码)原理及其计算方法

海明码&#xff08;汉明码&#xff09;是一种利用奇偶性检测和纠正错误的编码方法。在传输和储存数据时&#xff0c;可能会发生传输错误或数据损坏。海明码通过在数据中添加冗余位来检测错误并进行纠正&#xff0c;提高了传输和存储数据的可靠性。 基本原理&#xff1a;将原始…