linux_用户与组

用户与组

基于账号的访问控制

账号类型:用户账号(UID) 、组账号(GID)

用户账号简介

作用: 1.可以登陆操作系统

2.不同的用户具备不同的权限

唯一标识:UID(编号从0开始的编号,默认最大60000)

  • 管理员root的UID:永远为0

  • 系统用户的UID: 1-999(系统内定,不轻易修改)

  • 普通用户的UID:默认从1000开始,60000结尾

#用户分为超级用户root、系统用户、普通用户。

组账号简介

作用: 方便管理用户

唯一标识:GID(编号从0开始的编号,默认最大60000)

原则:Linux一个用户必须至少属于一个组(基础组,不轻易修改该组的归属)

组账户的分类:

  • 基本组:一般情况与用户同名,一个用户必须有基本组,基本组只能有一个

  • 附加组(从属组): 一个用户可以有多个附加组,也可以没有附加组

账号的存放类别

账号数据的存放

--存储在本机磁盘中--本地账户

本地帐号的数据文件

  • /etc/passwd 存放用户的基本信息

  • /etc/shadow 保存密码字串/有效期等信息

  • /etc/group,保存组帐号的基本信息

  • /etc/gshadow,组管理信息文件

解析账号文件

/etc/passwd保存用户账户的基本信息

7个字段

  1. 用户账号的名称

  2. 密码字符或占位符

  3. 用户账户的UID号

  4. 所属基本组的GID号

  5. 用户全名

  6. 用户的家目录

  7. 登入shell程序的路径

用户管理

useradd 添加用户

-格式:useradd [选项]... 用户名

-b, --base-dir BASE_DIR  # 如果未指定 -d HOME_DIR,则系统的默认基本目录。如果未指定此选项,useradd 将使用 /etc/default/useradd 中的 HOME 变量指定的基本目录,或默认使用 /home。
-c, --comment COMMENT    # 加上备注文字。任何文本字符串。它通常是对登录名的简短描述,目前用作用户全名的字段。
-d, --home HOME_DIR      # 将使用 HOME_DIR 作为用户登录目录的值来创建新用户。 
-D, --defaults           # 变更预设值。
-e, --expiredate EXPIRE_DATE # 用户帐户将被禁用的日期。 日期以 YYYY-MM-DD 格式指定。
-f, --inactive INACTIVE      # 密码过期后到帐户被永久禁用的天数。
-g, --gid GROUP   # 用户初始登录组的组名或编号。组名必须存在。组号必须引用已经存在的组。
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]] # 用户也是其成员的补充组列表。每个组用逗号隔开,中间没有空格。
-h, --help # 显示帮助信息并退出。
-k, --skel SKEL_DIR # 骨架目录,其中包含要在用户的主目录中复制的文件和目录,当主目录由 useradd 创建时。
-K, --key KEY=VALUE # 覆盖 /etc/login.defs 默认值(UID_MIN、UID_MAX、UMASK、PASS_MAX_DAYS 等)。
-l, --no-log-init   # 不要将用户添加到 lastlog 和 faillog 数据库。
-m, --create-home   # 如果用户的主目录不存在,则创建它。
-M                  # 不要创建用户的主目录,即使 /etc/login.defs (CREATE_HOME) 中的系统范围设置设置为 yes。
-N, --no-user-group # 不要创建与用户同名的组,而是将用户添加到由 -g 选项或 /etc/default/useradd 中的 GROUP 变量指定的组中。
-o, --non-unique    # 允许创建具有重复(非唯一)UID 的用户帐户。 此选项仅在与 -o 选项结合使用时有效。
-p, --password PASSWORD # crypt(3) 返回的加密密码。 默认是禁用密码。
-r, --system        # 创建一个系统帐户。
-s, --shell SHELL   # 用户登录 shell 的名称。
-u, --uid UID       # 用户 ID 的数值。
-U, --user-group    # 创建一个与用户同名的组,并将用户添加到该组。
-Z, --selinux-user SEUSER # 用户登录的 SELinux 用户。 默认情况下将此字段留空,这会导致系统选择默认的 SELinux 用户。

# 更改默认值
# 当仅使用 -D 选项调用时,useradd 将显示当前默认值。 当使用 -D 和其他选项调用时,useradd 将更新指定选项的默认值。 有效的默认更改选项是:
useradd 执行进程
  1. 会在/etc/passwd增加一行信息

  2. 会在/etc/shadow增加一行信息

  3. 会在/home新增用户家目录

  4. 会在/var/spool/mail增加用户邮件文件

  5. 会在/etc/group增加一行组信息(基础组)

  6. 会在/etc/gshadow增加一行组的管理信息

useradd -u [1000-60000] [用户名]

#创建用户的时候指定用户id

useradd -d [家目录] [用户名]

#创建用户的时候指定用户家目录

#linux在创建用户的时候,如果家目录/路径提前创建或者家目录的父目录不存在,在/etc/passwd上会记录路径,但是实际上该用户没有家。

---因为/opt/prefile存在,给student03指定家目录时会报错---

【注意】实际上/etc/passwd会将错误的信息写入

useradd -G [附加组名] [用户名]

#创建用户的时候指定加入附加组(-g 是指定基本组但不常用,不轻易修改基本组)

#创建账户的时候,可以把用户加入多个附加组

useradd -s [解释器] [用户名]

#创建用户的时候,指定用户的登入解释器

-s #指的是shell

基本的解释器 /bin/bas 『 /sbin/ nologin --是用户禁止登入解释器』

用户操作的进程:用户--->解释器--->内核--->硬件

给用户设置密码

切换用户进入操作系统(以管理员身份切换、以普通用户身份切换)

usermod修改用户

-格式:usermod [选项]... 用户名

usermod -l [新用户名] 【用户名】

#更改用户账户的登入名称 -l(login)

usermod -u [1000-60000] [用户名]

#更改用户id -u(userid)

usermod -s [解释器] [用户名]

#修改用户登入解释器 -s(shell)

#修改用户的信息的时候也可以直接通过vim修改/etc/passwd里面保存着的用户信息

usermod -d [家目录] 【用户名】

#修改用户的家目录

#-d 默认不会自动创建新的家目录---意思就是在/etc/passwd里面让新家目录覆盖原家目录

 

usermod -md [家目录] 【用户名】

#会自动创建新的家目录,并将相应的数据与权限转移

usermod -G [附加组] 【用户名】

修改用户的附加组 #重置附加组 (了解),注意的是修改写入会覆盖

#覆盖了原来的组

#覆盖,并写入多个组(用逗号隔开)

passwd 设置用户密码

•格式:passwd [选项]... 用户名

交互式设置密码

passwd命令,支持非交互式设置密码

--stdin:从标准输入(比如管道)取密码

解析用户密码文件

/etc/shadow,保存密码字串/有效期等信息

每个用户记录一行,以:分割为9个字段

[root@localhost ~]# grep stu /etc/shadow

【注意】上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数

9个字段

  • 字段1:用户帐号的名称

  • 字段2:加密后的密码字符串

  • 字段3:上次修改密码的时间

  • 字段4:密码的最短有效天数,默认0

  • 字段5:密码的最长有效天数,默认99999

  • 字段6:密码过期前的警告天数,默认7

  • 字段7:密码过期后多少天禁用此用户账号

  • 字段8:帐号失效时间,默认值为空

  • 字段9:保留字段(未使用)

用户初始配置文件

主要的初始配置文件

~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)

/etc/bashrc:全局配置文件,影响全体用户 (开启新的终端)

【注意:前者针对的是单个用户、后者对所有用户都适用。案例在前面笔记alias有所体现】

userdel删除用户
userdel命令

格式:userdel [-r] 用户名

添加 -r 选项,家目录/用户邮件也一并删除

【注】userdel 删除不掉家目录不再/home下的用户

[root@localhost ~]# userdel  -r  nsd18  #连同家目录一并删除
[root@localhost ~]# userdel  nsd20  #不删除家目录,只删除用户信息
userdel 删除的进程
  • 1.会在/etc/passwd删除一行信息

  • 2.会在/etc/shadow删除一行信息

  • 3.会在/home删除用户家目录(如果没有-r,跳过这一行)

  • 4.会在/var/spool/mail删除用户邮件文件

  • 5.会在/etc/group删除一行组信息

  • 6.会在/etc/gshadow删除一行组的管理信息

组账号管理

  • /etc/group,保存组帐号的基本信息

  • /etc/gshadow,组管理信息文件

每个组记录一行,以:分割为4个字段
[root@localhost ~]# grep stugrp /etc/group
stugrp:x:1504:nsd06
组名:组密码占位符:组的GID:组成员列表

 

gpasswd管理组成员

格式【语法】:gpasswd [选项]... 组名

•常用命令选项

-a:添加组成员,每次只能加一个

-d: 删除组成员,每次只能删一个

-M:定义(重置)组成员用户列表,可设置多个用户或者清空组员

#注意-M是覆盖写入

gpasswd -M ' ' #组员信息是空,则清空组员

-A :设置组的管理员(与-M一样,都是覆盖写入)

#组管理信息文件 /etc/gshadow

[root@localhost ~]# grep   tarena  /etc/gshadow
tarena:!:nb:     
组名:密码加密字符串:组的管理员列表:组成员列表
[root@localhost /]# gpasswd   -A   'nb,kenji'  tarena  #设置多个组管理员
[root@localhost /]# grep  tarena  /etc/gshadow
[root@localhost /]# gpasswd   -A   ''   tarena   #删除所有的组管理员
[root@localhost /]# grep  tarena   /etc/gshadow
groupdel 删除组

#删除组的时候,不可以删除基本组

[root@localhost ~]# groupdel   tarena    
[root@localhost ~]# groupdel   tmooc
[root@localhost ~]# grep   tmooc  /etc/group
[root@localhost ~]# grep  tarena  /etc/group

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简单贪吃蛇的实现

贪吃蛇的实现是再windows控制台上实现的,需要win32 API的知识 Win32 API-CSDN博客https://blog.csdn.net/bkmoo/article/details/138698452?spm1001.2014.3001.5501 游戏说明 ●地图的构建 ●蛇身的移动(使用↑ . ↓ . ← . → 分别控制蛇的移动&am…

哈希(构造哈希函数)

哈希 哈希也可以叫散列 画一个哈希表 哈希冲突越多&#xff0c;哈希表效率越低。 闭散列开放定址法: 1.线性探测&#xff0c;依次往后去找下一个空位置。 2.二次探测&#xff0c;按2次方往后找空位置。 #pragma once #include<vector> #include<iostream> #i…

基于SpringBoot+Vue的物流管理系统

运行截图 获取方式 Gitee仓库

机器学习(五) ----------决策树算法

目录 1 核心思想 2 决策树算法主要步骤 3 决策树算法的分类 3.1 ID3算法&#xff08;Iterative Dichotomiser 3&#xff09;&#xff1a; 3.1.1 基本步骤 3.1.2 原理 信息增益 3.1.3 注意事项 3.2 C4.5算法&#xff1a; 3.2.1. 信息增益率 计算公式 3.2.2. 构建决策…

Rpcx (一):详解【介绍、基础示例 demo】

一.rpcx介绍 1.1 rpc是什么 远程过程调用的通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。简单地说就是能使应用像调用本地…

服装店会员管理系统结合小程序商城帮你挖掘出潜在客户

在现代社会&#xff0c;随着科技的不断进步和人们消费习惯的变化&#xff0c;传统的服装店已经不再能够满足消费者的需求。为了更好地服务客户&#xff0c;提升销售业绩&#xff0c;许多服装店开始引入会员管理系统&#xff0c;并结合小程序商城&#xff0c;实现线上线下的无缝…

【半夜学习MySQL】表的约束(含主键、唯一键、外键、zerofill、列描述、默认值、空属性详解)

&#x1f3e0;关于专栏&#xff1a;半夜学习MySQL专栏用于记录MySQL数据相关内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 前言空属性默认值列描述zerofill主键主键概述主键删除与追加复合主键 自增长唯一键外键综合案例 前言 上一篇文章中介绍了数…

Android性能:高版本Android关闭硬件加速GPU渲染滑动卡顿掉帧

Android性能&#xff1a;高版本Android关闭硬件加速GPU渲染滑动卡顿掉帧 如果在Androidmanifest.xml配置&#xff1a; <application android:hardwareAccelerated"false" > 或者某个特点View使用代码&#xff1a; myView.setLayerType(View.LAYER_TYPE_SOFT…

带你手撕红黑树! c++实现 带源码

目录 一、概念 二、特性 三、接口实现 1、插入 情况一&#xff1a;p为黑&#xff0c;结束 情况二&#xff1a;p为红 1&#xff09;叔叔存在且为红色 2&#xff09;u不存在/u存在且为黑色 &#xff08;1&#xff09;p在左&#xff0c;u在右 &#xff08;2&#xff09;…

爱分析基于杭州云器Lakehouse实现成本最优的一体化管理,新一代数据平台的建设方式

导读 1.当前&#xff0c;企业在大数据和数据中台建设上取得成果&#xff0c;但数据开发管理仍具挑战性&#xff08;成本、效率、复杂度&#xff09;。 2.随数据平台领域成熟&#xff0c;厂商应结合自身需求&#xff0c;重新思考“基于开源自建数据平台”的重资产模式与“购买…

Windows单机部署RocketMQ5.X并与SpringBoot集成

RocketMQ 5.X下载 《RocketMQ 5.X下载》 下载后&#xff0c;解压缩 修改初始内存 修改runserver.cmd&#xff08;Linux则为runserver.sh&#xff09; 将下面的-Xms2g -Xmx2g -Xmn1g调小 if %JAVA_MAJOR_VERSION% lss 17 (set "JAVA_OPT%JAVA_OPT% -server -Xms2g -X…

传感网应用开发教程--AT指令访问新大陆云平台(ESP8266模块+物联网云+TCP)

实现目标 1、熟悉AT指令 2、熟悉新大陆云平台新建项目 3、具体目标&#xff1a;&#xff08;1&#xff09;注册新大陆云平台&#xff1b;&#xff08;2&#xff09;新建一个联网方案为WIFI的项目&#xff1b;&#xff08;3&#xff09;ESP8266模块&#xff0c;通过AT指令访问…

计算机毕业设计python校园二手交易系统aqj3i-

什么叫三层架构呢&#xff1f;指的是表示层、组件层、数据访问层。组件层是双层架构没有的&#xff0c;它的加入&#xff0c;把复杂的问题分解得更简单、明了&#xff0c;通过组件层&#xff0c;实现控制数据访问层&#xff0c;这样达到功能模块易于管理、易于访问等目的&#…

【python量化交易】qteasy使用教程06——创建自定义因子选股交易策略

创建自定义因子选股策略 使用qteasy创建自定义因子选股交易策略开始前的准备工作本节的目标Alpha选股策略的选股思想计算选股指标用FactorSorter定义Alpha选股策略交易策略的回测结果用GeneralStg定义一个Alpha选股策略回测结果&#xff1a;本节回顾 使用qteasy创建自定义因子选…

【UnityRPG游戏制作】Unity_RPG项目_PureMVC框架应用

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;就业…

Redis系列-3 Redis缓存问题

1.缓存的作用 数据库(如Mysql)的持久化特点带来了较低的性能&#xff0c;高并发的场景下&#xff0c;连接池很快被耗尽而出现宕机或DOS&#xff0c;无法继续对外提供服务。相对于数据库的硬盘IO&#xff0c;缓存中间件基于内存进行读写&#xff0c;从而具备较大的吞吐量和高并…

5.10.6 用于乳腺癌超声图像分类的Vision Transformer

医学超声&#xff08;US&#xff09;成像由于其易用性、低成本和安全性已成为乳腺癌成像的主要方式。卷积神经网络&#xff08;CNN&#xff09;有限的局部感受野限制了他们学习全局上下文信息的能力。利用 ViT 对使用不同增强策略的乳房 US 图像进行分类。 卷积神经网络&#…

你知道C++多少——默认成员函数

&#x1f308;个人主页&#xff1a;小新_- &#x1f388;个人座右铭&#xff1a;“成功者不是从不失败的人&#xff0c;而是从不放弃的人&#xff01;”&#x1f388; &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f3c6;所属专栏&#xff1…

Linux中gitlab-runner部署使用备忘

环境&#xff1a; 操作系统:&#xff1a;CentOS8 gitlab版本&#xff1a;13.11.4 查看gitlab-runner版本 可以从https://packages.gitlab.com/app/runner/gitlab-runner/search找到与安装的gitlab版本相近的gitlab-runner版本以及安装命令等信息&#xff0c;我找到与13.11.4相…

网络 | 应用层-websocket协议概述与握手过程解析

背景&#xff1a;这里为了实现消息实时传输决定引入websocket协议。 不管是发送消息还是接收消息&#xff0c;都需要实时传输&#xff0c;张三发给李四&#xff0c;李四立马就能收到&#xff0c;基于HTTP实现是有些困难的。 但轮询方式也带来了一些问题 1、消耗更多系统资源&…