当前位置: 首页 > news >正文

Linux的账号及权限管理

一.管理用户账号

1.1 用户账户的分类

1.1.1 用户账号的分类
  1. 超级用户(拥有至高无上的权利) root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的。
  2. 普通用户(权限受到限制的用户)由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
  3. 程序用户(不是给人使用的,是给程序使用的  不允许登录)在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。
1.1.2 用户标识号 UID

超级用户root用户账号的UID固定值0

程序用户账号的UID默认为Centos 6: 1~499,Centos7: 1~ 999

普通用户的UID默认为Centos 6: 500以上 ,Centos7: 1000~ 60000

1.1.3 用户账号文件

作用:保存用户名称、宿主目录、登录Sell等基本信息,每一行对应一个用户的帐号记录

/etc/passwd  存放用户信息

/etc/shadow   存放密码以及用户密码信息

1.2 用户账号管理

1.2.1 添加用户账号——useradd

添加新用户,并对新用户进行一些个性化设置

格式: useradd 【选项】 用户名

选项说明
-u 指定uid
-M不生成家目录
-s指定shell类型
-e指定用户的失效时间
-d指定用户的家目录位置(与-M一起使用,不生效)
-g指定基本组
-G指定附加组
-r创建程序用户  id<1000
-c写备注信息
-p密码加密
-o生成相同的UID

小题目:

随机生成一个密码

tr -d  删除去除

tr  -c  用字符串中字符集的补集替换此字符集,要求字符集为ASCII

[[:alnum:]]  [a-zA-Z0-9]  数字和字母

head -c 12    取字符12位

1.2.2 用户账号的初始化配置

新建用户账号时,从  /etc/skel  目录中复制而来

主要的用户初始配置文件:

~/.bash_profile  这个文件是为系统全局变量配置文件,可以通过重启系统或者执行source /etc/profile 命令使profile文件被读取

~/.bashrc   这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本

~/.bash_logout  每一个允许bash shell 的用户都会执行此文件,可通过执行bash命令打开一个新的bash shell时,使bashrc文件被读取

1.2.3 设置/更改用户的口令——passwd

格式:passwd 【选项】 用户名

选项说明
-l 锁定用户      (不能登录)
-u解锁用户
-S查看用户的状态
-d清空密码  不需要密码直接登录
修改密码

免交互修改密码

设置用户密码直接使用passwd设置,需要一个一个进行设置,可以调用管道符号,给用户设置密码,进行批量设置密码,使用 --stdin选项。 --stdin  代表标准输入

1.2.4 修改用户账号属性——usermod

对已有用户的属性进行修改

格式: usermod 【选项】 用户名

选项说明
-l更改用户账号的登录名称
-L锁定用户账户
-u修改用户的UID 号
-U解锁用户账户
-d修改用户的家目录位置
-e修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g修改用户的基本组名
-G修改用户的附加组名
-s指定用户的登录shell

-l 修改用户名

usermod  -l  新名  原名

1.2.5 删除用户账号——userdel

格式: userdel    [-r]   用户名

使用userdel时,加上-r选项,表示删除用户的家目录。

如果不加 -r ,删除之后再创建用户时会报错

二.管理组账号

2.1 组账号概述

2.1.1 组账号的分类

基本组(私有组): 基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4段记录的即为该用户的基本组GID号。

附加组(公共组): 用户除了基本组以外,额外添加指定的组。

2.1.2 组标识号 GID

root用户账号的GID固定值0

程序用户账号的GID默认为Centos 6: 1~499,Centos 7: 1~ 999

普通用户的GID默认为Centos 6: 500以上,Centos7: 1000~ 60000

2.1.3 组账号文件

文件位置:

​ /etc/group:保存组账号基本信息

​ /etc/gshadow:保存组账号的密码信息

2.2 组账号管理

2.2.1 添加组账号——groupadd

格式: groupadd 【-g GID】组账号名

不加 -g 的话,会默认创建组id号

2.2.2 添加、设置、删除组成员——gpasswd

格式: gpasswd 【选项】 组账号名

选项说明
-a向组内添加一个用户
-d从组内删除一个用户成员
-M定义组成员列表,以逗号分隔

2.2.3 删除组账号——groupdel

格式: groupdel 组账号名

2.3 查询账号信息

2.3.1 查询用户账号所属组——groups

格式:groups  [用户名]

2.3.2 查询用户账号身份标识——id

格式:id   [用户名]

2.3.3 查询用户账号的登录属性——finger

格式:finger  [命令]

2.3.4 查询当前主机的用户登录情况——w命令、who命令、user命令

三.文件/目录的权限和归属

 在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性:访问权限和文件所有者,简称“权限”和“归属”。其中访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用于账号)、属组(拥有该文件的组账号)。Linux系统根据文件和目录的访问权限、归属来对用户访问数据的过程进行控制。

3.1 查看文件/目录的权限和归属

第1个字符:表示该文件的类型,可以是d(目录文件)、b(块设备)、c(字符设备)、“-”(普通文件)、l(软链接)、s(套接字)、p(管道符)

第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限;

第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限;

第8~10个字符:表示其他任何用户(Other)对该文件的访问权限;

第11个字符:这里的“ . ” 与SELinux有关

访问权限:

读取 r : 允许查看文件内容、显示目录列表

写入 w : 允许修改文件内容、允许在目录中新建、移动、删除文件或子目录

可执行 x : 允许运行程序、切换目录

特殊的一个的tmp(临时文件)文件 t

归属(所有权):

属主: 拥有该文件或目录的用户账号

属组: 拥有该文件或目录的组账号

3.2 设置文件/目录的权限和归属

3.2.1 设置文件/目录权限——chmod

u属主
g属组
o其他人
a所有人(上面三个)
+ 在原有的基础上加上权限
-在原有的基础上减去权限
=赋于  原有的权限不看,就是等于后面的权限

3.2.2 设置文件/目录归属——chown

属主改变:

属组改变:

属主 属组都改

小问题:

执行cp  /etc/issue  /data/dir/ 所需要的最小权限

cp   x

/etc/  x

issue   r

/data/   x

/dir/   wx

3.3 权限掩码——umask

umask作用:

控制新建的文件或目录的权限(创建文件的话,执行权限不会受影响)

默认权限去除umask的权限为新建的文件或目录的权限

umask查看: umask

新建目录的默认权限:777

新建文件的默认权限:666

root的umask默认时  022

非特权用户umask默认是 002

实例:

默认的 减去022

用户文件创建掩码 123

意会即可  言传太难

3.4 特殊权限

suid

当设置在可执行文件上时,允许以文件所有者的身份(setuid)或文件所属组的身份(setgid)运行该文件。

此处s表示当使用这个命令程序时,把当前用户当成文件的所属主

Sticky位

其它用户虽然有权限,但是无法删除

小问题:

/tmp

t  权限中多了一个t 是什么意思?

除了文件所有者  超级管理员 其他人不可以删除文件

只能对文件夹有用

3.5 ACL 访问控制列表

实现灵活的权限管理

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m,       --modify-acl 更改文件的访问控制列表
-M,       --modify-file=file 从文件读取访问控制列表条目更改
-x,       --remove=acl 根据文件中访问控制列表移除条目
-X,       --remove-file=file 从文件读取访问控制列表条目并删除
-b,       --remove-all 删除所有扩展访问控制列表条目
-k,       --remove-default 移除默认访问控制列表
          --set=acl 设定替换当前的文件访问控制列表
          --set-file=file 从文件中读取访问控制列表条目设定
          --mask 重新计算有效权限掩码
-n,       --no-mask 不重新计算有效权限掩码
-d,       --default 应用到默认访问控制列表的操作
-R,       --recursive 递归操作子目录
-L,       --logical 依照系统逻辑,跟随符号链接
-P,       --physical 依照自然逻辑,不跟随符号链接
          --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
          --test 测试模式,并不真正修改访问控制列表属性
-v,       --version           显示版本并退出
-h,       --help              显示本帮助信息

相关文章:

Linux的账号及权限管理

一.管理用户账号 1.1 用户账户的分类 1.1.1 用户账号的分类 超级用户&#xff1a;&#xff08;拥有至高无上的权利&#xff09; root用户是Linux操作系统中默认的超级用户账号&#xff0c;对本主机拥有最高的权限&#xff0c;系统中超级用户是唯一的。普通用户&#xff1a; …...

Flink 状态管理与容错机制(CheckPoint SavePoint)的关系

一、什么是状态 无状态计算的例子&#xff1a; 例如一个加法算子&#xff0c;第一次输入235那么以后我多次数据23的时候得到的结果都是5。得出的结论就是&#xff0c;相同的输入都会得到相同的结果&#xff0c;与次数无关。 有状态计算的例子&#xff1a; 访问量的统计&#x…...

CSS中更加高级的布局手段——定位之绝对定位

定位&#xff1a; - 定位指的就是将指定的元素摆放到页面的任意位置,通过定位可以任意的摆放元素 - 通过position属性来设置元素的定位 -可选值&#xff1a; static&#xff1a; [sttik] 默认值&#xff0c;元素没有开启定位 relative&#xff1a; [relətiv] 开启元素…...

SQL server 数据库练习题及答案(练习3)

一、编程题 公司部门表 department 字段名称 数据类型 约束等 字段描述 id int 主键&#xff0c;自增 部门ID name varchar(32) 非空&#xff0c;唯一 部门名称 description varchar(1024) …...

太绝了!这个食堂服务,戳中了打工人的心巴!

在当今数字化时代&#xff0c;科技的迅猛发展已经渗透到我们生活的方方面面&#xff0c;其中餐饮行业也不例外。食堂作为人们日常生活中不可或缺的一部分&#xff0c;其管理和运营也需要紧跟科技潮流。 智慧收银系统的引入&#xff0c;旨在提高食堂的效率、准确性和服务水平&am…...

围栏中心点

后端返回的数据格式是 [{height: 0,lat: 30.864277169098443,lng:114.35252972024682}{height: 1,lat: 30.864277169098443,lng:114.35252972024682}.........]我们要转换成 33.00494857612568,112.53886564762979;33.00307854503083,112.53728973842954;33.00170296814311,11…...

【go-zero】simple-admin框架 整合ent mysql批量插入 | ent批量插入mysql

一、完整流程 我们需要通过goctls快速生成一个RPC项目 【go-zero】simple-admin 开篇:进击 go-zero 二开框架 simple-admin 加速 go-zero 开发 之 rpc项目快速创建(更新中~) https://ctraplatform.blog.csdn.net/article/details/130087729 1、RPC项目 1.1、.proto synta…...

漏洞复现-泛微OA xmlrpcServlet接口任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…...

Flink CDC 1.0至3.0回忆录

Flink CDC 1.0至3.0回忆录 一、引言二、CDC概述三、Flink CDC 1.0&#xff1a;扬帆起航3.1 架构设计3.2 版本痛点 四、Flink CDC 2.0&#xff1a;成长突破4.1 DBlog 无锁算法4.2 FLIP-27 架构实现4.3 整体流程 五、Flink CDC 3.0&#xff1a;应运而生六、Flink CDC 的影响和价值…...

c语言例题7

以下程序中&#xff0c;主函数调用了LineMax函数&#xff0c;实现在N行M列的二维数组中&#xff0c;找出每一行上的最大值。请填空。 #define N 3 #define M 4 void LineMax(int x[N][M]) { int i,j,p; for(i0; i<N;i) { p0; for(j1; j<M;j) …...

【Linux驱动】最基本的驱动框架 | LED驱动

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux驱动》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f3c0;最基本的驱动框架⚽驱动程序框架⚽编程 &#x1f3c0;LED驱动⚽配置GPIO⚽编程…...

前端---表单提交

1. 表单属性设置 <form>标签 表示表单标签&#xff0c;定义整体的表单区域 action属性 设置表单数据提交地址method属性 设置表单提交的方式&#xff0c;一般有“GET”方式和“POST”方式, 不区分大小写 2. 表单元素属性设置 name属性 设置表单元素的名称&#xff0c…...

[C#]Parallel使用

一、 Parallel的使用 1、Parallel.Invoke2、Parallel.For3、Parallel.Foreach二、 Parallel中途退出循环和异常处理 1、当我们使用到Parallel&#xff0c;必然是处理一些比较耗时的操作&#xff0c;当然也很耗CPU和内存&#xff0c;如果我们中途向停止&#xff0c;怎么办呢&…...

docker container 指定gpu设备

1&#xff0c; 在yaml中 Turn on GPU access with Docker Compose | Docker Docs Example of a Compose file for running a service with access to 1 GPU device: services:test:image: nvidia/cuda:12.3.1-base-ubuntu20.04command: nvidia-smideploy:resources:reserva…...

时间Date

你有没有思考过时间问题&#xff1a; 前端为什么可以直接看见时间格式的数据 后端怎么接受的数据&#xff0c;怎么处理的 一般来说&#xff1a;前端传输来数据都是时间格式的字符串&#xff0c;那么后端需要能够解析时间格式的字符串&#xff0c;归功于JSONFormat ,可以解析…...

前端---css 选择器

1. css 选择器的定义 css 选择器是用来选择标签的&#xff0c;选出来以后给标签加样式。 2. css 选择器的种类 标签选择器类选择器层级选择器(后代选择器)id选择器组选择器伪类选择器 3. 标签选择器 根据标签来选择标签&#xff0c;以标签开头&#xff0c;此种选择器影响范…...

【MybatisPlus快速入门】(2)SpringBoot整合MybatisPlus 之 标准数据层开发 代码示例

目录 1 标准CRUD使用2 新增3 删除4 修改5 根据ID查询6 查询所有7 MyBatis-Plus CRUD总结 之前我们已学习MyBatisPlus在代码示例与MyBatisPlus的简介&#xff0c;在这一节中我们重点学习的是数据层标准的CRUD(增删改查)的实现与分页功能。代码比较多&#xff0c;我们一个个来学习…...

如何将自建的ElasticSearch注册成一个服务

ES 服务管理 注册ES服务 创建一个 Elasticsearch 服务配置文件。 ​ sudo vim /etc/systemd/system/elasticsearch.service 将以下内容复制到 elasticsearch.service 文件中&#xff1a; [Unit] Descriptionelasticsearch Afternetwork.target[Service] Typeforking Useresa…...

360勒索病毒:了解最新变种.360,以及如何保护您的数据

导言&#xff1a; 随着科技的飞速发展&#xff0c;网络安全威胁也在不断演变&#xff0c;.360 勒索病毒成为近期备受关注的一种恶意软件。本文91数据恢复将介绍如何恢复被.360 勒索病毒加密的数据文件&#xff0c;并提供一些建议&#xff0c;帮助你预防这种威胁。 如果您在面对…...

vue使用ElementUI搭建精美页面入门

ElementUI简直是css学得不好的同学的福音 ElementUI官网&#xff1a; Element - The worlds most popular Vue UI framework 安装 在vue文件下&#xff0c;用这个命令去安装Element UI。 npm i element-ui -S step1\先切换到vue的目录下去&#xff0c;注意这里面的WARN不是…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...