Linux之用户和用户组

目录

一、简介

1.1 用户账号分类

二、用户

2.1 useradd

2.2 userdel

2.3 usermod

2.4 passwd

2.5 su

2.6 登出

三、用户组

3.1  groupadd

3.2  groupdel

3.3  groupmod

3.4  newgrp

四、用户账号系统

4.1 /ect/passwd

4.2 常见的伪用户如下所示

五、思维导图


一、简介

1.如果要使用系统资源,就必须想系统管理员申请一个账号,然后通过这个账号进入系统,这个账号即用户

2.Linux系统中的用户组就是具有相同特性的用户集合

1.1 用户账号分类

  • 超级用户root(0)

        默认是root用户,其UID均为0

        在每台unix/Linux操作系统重都是唯一且真是存在的,通过它可以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限

        在生产环境,一般禁止root账号远程登录SSH连接服务器,以加强系统安全

  • 程序用户(1~499)

        与真实用户区分开来,这类用户的最大特点是安装系统后默认就会存在的,且默认情况下是不能登录系统

        它们是系统正常运行必不可少的,他们的存在主要是方便管理系统,满足相应的系统进程都文件属主的要求

        例如系统默认的bin/adm/nodoby用户等,由于服务角色不同,有部分用不到的系统服务器被禁止开机执行,因此,在做系统安全优化时,被禁止开机启动了服务对应的虚拟用户也是可以处理掉的(删除或注释)

  • 普通用户(500~65535)

        这类用户一般是由具备系统管路员root的权限的运维人员添加

二、用户

2.1 useradd

添加新的用户账号

1. useradd  选项   用户名

2. 参数说明:
    选项:

  • -d   目录

        指定用户目录,如果此目录不存在,则同时使用-m选项,可以创建主目录

  • -g   用户组

        指定用户所属的用户组

  • -G   用户组,用户组

        指定用户所属的附加组

  • -s  Shell文件

        指定用户的登录Shell

  • -u 用户号

        指定用户的用户号,如果同时有 -o选项,则可以重复使用其他用户的标识号

  • 用户名

        指定新账号的登录名

  • -c comment

        指定一段注释性描述

2.2 userdel

删除账号

1. 如果一个用户的账号不再使用,可以从系统中删除,删除用户账号就是要将/ect/passwd等系统文件中的该用户记录删除,必要时还要删除用户的主目录

2. userdel  选项   用户名

常用的选项是 -r,他的作用是把用户的主目录一起删除

示例:

userdel -r  sam

此命令删除用户sam在系统文件中(主要是/ect/passwd,  /ect/shadow,  /ect/grupde 等)的记录,同时删除用户的主目录

2.3 usermod

修改账号

1. 修改用户账号就是根据实际情况更改用户的有关属性,如用户号,主目录,,用户组、登录Shell等

2. usermod  选项  用户名

3. 常用的选项包括-,-d,-m,-s,-u以及一等,这些选项的意义与useradd命--令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用选项:-1新用户名这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

示例:

usermod-s  bin/ksh  -d  /home/z  -g developer sam

此命令将用户sam的登录Shel1修改为ksh,主目录改为/ome/z,用户组改为developer

2.4 passwd

  1. 用 户口令的管理 :passwd  选项 用户名
  2. 可使用的选项:

        -l :锁定口令,即禁用账号

        -u :口令解锁

        -d :使账号无口令

        -f :强迫用户下次登录时修改口令

        如果默认用户名,则修改当前用户的扣

示例:

示例1:修改密码

(1)超级用户,可以用下列形式指定任何用户的口令
passwd sam
New password:******
Re-enter new password:*******

(2)假设当前用户是sam,则下面的命令修改该用户自己
passwd
0ld password:*****
New password:*******
password:*******
Re-enter new password:*******

注:普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,
如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令

示例2:用户指定空口令时

passwd -d sam

此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再允许该用户登录了

示例3:passwd 命令还可以用  -l(lock)选项锁定某一用户,使其不能登录,解锁使用-u

passwd -l sam

2.5 su

切换用户:su  username

2.6 登出

  • exit
  • logout
  • Ctrl+d

三、用户组

3.1  groupadd

  1. 增加一个用户组

        groupadd  选项 用户组

     2. 选项

  •   -g GID

        指定新用户组的组标识号(GID)

  • -o

        一般与-g选项同时使用,表示新用户组的GID可以与系统已有的用户组的GID相同

     3. 示例

        示例1:groupadd group1

        此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1

        示例2:groupadd-g 101 group2

        此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

3.2  groupdel

删除一个用户组

groupdel  group1

3.3  groupmod

  1. 修改用户组的属性

        groupmod  选项  用户组

     2. 常用选项

  • -g  GID 为用户组指定新的组标识号。
  • -o  与~g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同
  • -n  新用户组 将用户组的名字改为新名字 

     3. 示例

        示例1:

        groupmod -g 102 group2此命令将组group2

        此命令将组group2的组标识号修改为102

        示例2:

        groupmod-g 10000-n group3 group2

        此命令将组group2的标识号改为10000,组名修改为group3

3.4  newgrp

  1. 如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组
  2. 示例

        newgrp root

        这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组

四、用户账号系统

4.1 /ect/passwd

root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:0wer of system commands: /bin:
sys:x:3:3:0wer of system files: /usr/sys:adm:
adm:x:4:4:System account ing:/usr/adm:
uucp:x:5:5:1UUCP administrator: /usr/lib/uucp:
auth:x:7:21:uthentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:Asr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer adinistrator: /usr/spool/lp:
sam:x:200:50:Sam san:/home/sam:/bin/sh

从上面的例子我们可以看到,/etc/assw中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下

  1. 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录She11
  2. "用户名"是代表用户账号的字符串。
  3. “口令”一些系统中,存放着加密后的用户口令字
  4. “用户标识号”是一个整数,系统内部用它来标识用户
  5. “组标识号”字段记录的是用户所属的用户组。
  6. “注释性描述”字段记录着用户的一些个别情况
  7. “主目录”,也就是用户的起始工作目录。
  8. 用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即She11。
  9. 系统中有一类用户称为伪用户(pseudo users)。

4.2 常见的伪用户如下所示

  1. 伪用户含义
  2. bin 拥有可执行的用户命令文件
  3. sys 拥有系统文件
  4. adm 拥有帐户文件
  5. uucp UUCP使用
  6. lp lp或lpd子系统使用
  7. nobody NFS使用

五、思维导图

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

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

相关文章

igolang学习3,golang 项目中配置gin的web框架

1.go 初始化 mod文件 go mod init gin-ranking 2.gin的crm框架 go get -u github.com/gin-gonic/gin 3.go.mod爆红解决

靡语IT:JavaScript_概述、基础

一、JavaScript 概述 javaScript 语言主要是完成页面的数据验证,因此它运行在客户端, 需要运行浏览器来解析执行 JavaScript 代码。js 是网景公司 (Netscape)的产品,最早取名为 LiveScript 最后借 java 的热度 改为 j…

C++多线程同步(上)

多线程同步 引言总述详情互斥锁示例运行结果分析条件变量示例一实现分析优化运行结果示例二实现代码运行结果示例三实现代码运行结果读写锁示例实现代码注意分析运行结果附言实现运行结果运行结果个人心得引言 项目中使用多线程,会遇到两种问题,一种是对共享资源的访问时需要…

关于运行flutter app 运行到模拟器出现异常提示

Exception: Gradle task assembleDebug failed with exit code 1 解决方案: 1.讲当前文件的distributionUrl值改为 https://mirrors.cloud.tencent.com/gradle/gradle-7.4-all.zip

超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)

超市售货管理小程序目录 目录 基于微信小程序的超市售货管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)商品管理 (2)出入库管理 (3)公告管理 …

CrossOver2024虚拟机软件的优缺点分别是什么?

CrossOver虚拟机软件的优缺点分别如下: 优点: 无需双系统:用户可以在Mac或Linux系统上直接运行Windows应用程序,无需安装双系统,从而节省了硬盘空间并避免了系统切换的麻烦。易于安装和使用:CrossOver具有…

文件上传---->生僻字解析漏洞

现在的现实生活中,存在文件上传的点,基本上都是白名单判断(很少黑名单了) 对于白名单,我们有截断,图片马,二次渲染,服务器解析漏洞这些,于是今天我就来补充一种在upload…

RAW 编程接口 TCP 简介

一、LWIP 中 中 RAW API 编程接口中与 TCP 相关的函数 二、LWIP TCP RAW API 函数 三、LwIP_Periodic_Handle函数 LwIP_Periodic_Handle 函数是一个必须被无限循环调用的 LwIP支持函数,一般在 main函数的无限循环中调用,主要功能是为 LwIP各个模块提供…

vscode【报错】yarn : 无法将“yarn”项识别为 cmdlet

问题 CMD下载完yarn可以查看到yarn版本,但是进入到vscode控制台报错无法识别,报错内容如下: vscode【报错】yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径&#xff…

ffmpeg for android编译全过程与遇到的问题

编译前准备 编译环境:Ubuntu16,可自行下载VMWare最新版并百度永久许可证或在服务器上安装Ubuntu ffmpeg源码:ffmpeg4.2.2 NDK下载:Android NDK r21e 有条件的最好还是在Liunx平台下编译吧,Windows平台下编译坑更多…

【计算机网络】数据链路层|封装成帧|透明传输|差错检测|PPP协议|CSMA/CD协议

目录 一、思维导图 ​ 二、数据链路层功能概述 1.数据链路层概述 2.数据链路层功能概述——封装成帧 3.数据链路层功能概述——透明传输 4.数据链路层功能概述——差错检测 三、数据链路层重要协议 1.数据链路层重要协议:PPP协议 2.数据链路层重要协议&#x…

js设计模式:备忘录模式

作用: 封装的对象可以在对象触发行为时进行状态的记录与保存 也可以进行状态的回退,恢复之前的状态 示例: class Editor{constructor(){this.allText }edit(text){this.allText text}saveNow(){return new EditorText(this.allText)}backspacing(editorText){this.allText…

护眼台灯哪个品牌更好用?五大好用护眼台灯大爆料!

护眼台灯相信大家都有所耳闻或者使用过,家里有小孩的可能了解更深,毕竟是孩子学习时需要使用的小家电。现在市面上的护眼台灯种类可以说是多到眼花缭乱,甚至有些劣质的产品掺杂在里面,或许有些宝妈已经踩过一些坑了,护眼台灯究竟哪个品牌更好用? &#x…

这个春节,爽了

四次医院 请了一周假,准备开始愉快的长假。 结果第一天小孩就发烧了,赶紧送医院拿药。回到家才发现,给医生看的验血报告是上一次的,那是好几个月之前的。 但是药已经吃了,这是吃错药了呀!! …

GoLand 相关

goland 下载依赖 go mod tidy:保持依赖整洁 go mod tidy 命令的作用是清理未使用的依赖,并更新 go.mod 以及 go.sum 文件。 go mod tidy 和 go mod vendor 两个命令是维护项目依赖不可或缺的工具。go mod tidy 确保了项目的 go.mod 文件精简且准确&…

ubuntu20.04安装实时内核补丁PREEMPT_RT

参考: Ubuntu 18.04安装 RT-PREEMPT 实时内核及补丁【过程记录】_ubuntu18.04 preempt rt linux 5.6.19-CSDN博客 https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md当前内核:5.15.0-94-ge…

1.deeplabv3+网络结构及原理

这里的网络结构及原理可以看这篇博客,DeepLabV3: 在DeepLabV3基础上引入了Decoder_matlab deeplabv3resnet101-CSDN博客该博客翻译原论文解释得很清楚。 一、引言 语义分割的目标是为图像中的每个像素分配语义标签。在这项研究中,考虑了两种类型的神经网…

docker:Haoop集群

系列文章目录 docker:环境安装 docker:Web迁移 docker:Haoop集群 文章目录 系列文章目录前言一、宿主机选择二、环境准备1.前置技术2.网络环境1. docker网卡2. 分配IP 三、容器互联三、Jdk和Hadoop安装四、分发脚本五、启动Hadoop总结 前言 年前学习了docker的相关…

https://registry.npm.taobao.org淘宝npm镜像仓库地址更新

在工作中有遇见获取淘宝的npm镜像存在问题,图示如下的报错: 根据报错的内容是说 https://registry.npm.taobao.org地址访问失败了,然后通过排查发现淘宝的npm镜像仓库地址有更新了。需要使用最新的地址 旧的淘宝镜像仓库:https://…

数据结构2月19日

题目&#xff1a;顺序表作业 代码&#xff1a; 功能区&#xff1a; #include <stdio.h>#include <stdlib.h>#include "./d2191.h"SeqList* create_seqList(){SeqList* list (SeqList*)malloc(sizeof(SeqList));if(NULL list){return NULL;}list->p…