RHCSA --- Linux用户/组权限
用户管理
useradd 创建用户
-u(UID) 指定UID
-g(GID) 指定基本组
-G(GID1,GID2,...) 指定附加组
-c “注释信息” 指定用户注释信息(昵称)
-d /path/to/dir/ 指定某个目录为用户家目录(/jiamulu/test)
-s /shell 指定用户使用的shell
useradd -u 12345 -g redhat -G zhangsan -c "suibianxie" -d /jiamulu/test -s /sbin/nologin(不可登录) test
/bin/bash (可登录)
usermod(修改)
tail -1 /etc/passwd(查看用户数据库最后一行)
usermod -l test01 test 修改登录名
修改UID和GID为0的用户一定是root用户
vim etc/passwd
/sbin/nologin ---> /bin/bash
相关文件
/etc/skel
用户家目录中的默认隐藏配置文件
/etc/login.defs
用户的相关默认属性
passwd 修改用户密码
--stdin
echo "redhat" | passwd --stdin USERNAME(脚本)
/etc/default/useradd 设置新用户的默认值
userdel
userdel USERNAME 删除用户(保留用户的家目录和邮箱)
/home/ 和 /var/spool/mail/
-r 删除用户时删除用户家目录和用户的邮箱
id 查看用户的ID信息,选项同useradd
-u 显示UID
-G 显示附加GID
-g 显示GID
usermod 修改用户相关信息,选项同useradd
-u 修改UID
-g 修改基本组,基本组必须事先存在
-G 这个选项会覆盖之前的附加组,和-a选项配合使用
usermod -a -G 追加附加组
-c 修改用户注释信息
-s 修改用户shell
-l 修改登陆名
chsh -s 修改用户shell
grep 过滤
组管理
groupadd 添加一个组
-g GID
-r 添加系统组
groupdel 删除一个组
groupmod 修改一个组
-g GID
-n GRPNAME 修改组名
gpasswd 修改组密码
newgrp 切换到一个新组
使用exit退出新组
history 查看命令历史
grep 过滤指定文本在某些文件,支持正则,支持扩展正则 -E egrep
grep root /etc/passwd 查找passwd文件中是否有root
chmod 777 /test(修改该目录权限)
权限管理
什么是权限?
单用户 单任务
多用户 多任务 Linux
现代操作系统
权限
认证 密码、指纹、人脸、虹膜、声音
授权 认证之后的用户所释放给你的资源
审计 过程 结果
3A认证框架
认证 用户和组的管理
授权 权限的控制
审计
文件
- 没有对应的权限
r 可以读取文件内容
w 可以编辑文件内容
x 可以执行文件 文件必须是可执行文件
目录
- 没有对应权限
r 表示可以列出目录
w 表示可以在目录创建删除文件。。。
x 表示可以进入(cd)该目录
第一组
rw- 表示的是该文件所属用户对该文件的权限
第二组
r-- 表示的是该文件所属组的所有用户对该文件的权限
第三组
r-- 表示的是除了上面的那些人对该文件的权限
chmod(修改权限) 权限 filename/dirname
文件名 目录名
chmod u+x root
用 字母o 表示其他人
用 字母g 表示所属用户组的所有用户
用 字母u 表示所属用户
用 字母a 表示所有用户
用 + 表示赋予指定的权限
用 - 表示取消指定的权限
用 = 表示直接赋予指定权限(ugo)
chomd ugo = r
数字表示法(指定权限):
1 0
有权限 无权限
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
777
rwxrwxrwx
chmod 777 root
r-- 4
-w- 2
--x 1
633
rw--wx-wx
chmod 权限数字表示法(filename)
umask 查看权限掩码,文件默认权限为666,目录默认权限为777
umask 权限掩码 更改权限掩码
rw-r--r-- 644 为什么?
rwxr-xr-x 755 为什么?
0 022
022(权限掩码) 表示的是在创建文件或者目录时从文件或者目录上拿走的权限
文件:
644
022 666 rw-r--r--
请注意:文件默认不配置可执行权限
目录:
755
022 777 rwxr-xr-x 目录所对应的权限
x:目录x权限是用来定义能否进入该目录
权限掩码 每个用户可以有自己设定的权限掩码
如果要修改权限掩码 umask 权限掩码 直接修改
请注意:修改的是当前用户
全局权限可以修改,但是没必要。
全局配置文件 局部配置文件
rw--w--w- 622 044 666
rw-r--r-- 644 033相当于022 1 0 3 2 5 4
请注意:文件权限掩码中,x权限没有意义
chown 改变文件或者目录的所属用户和所属组
chown USERNAME:GROUPNAME FILENAME -R(递归:更改目录及目录里所有文件)
chown redhat:redhat haha
chown root. haha 修改用户及所属组为root
chown .redhat haha 修改文件所属组为root
chown redhat.root haha 修改为redhat用户和root组
chgrp 修改文件或目录的所属组
chgrp test /test
安全上下文
ps -ef 列出该用户的所用进程
ps -ef | grep passwd
chmod u-s /usr/bin/passwd
secure context
源进程所拥有权限为发起者所拥有的,追加s权限后,进程所拥有的权限为程序拥有者所所拥有的权限
特殊权限
SUID: 运行程序时,进程的属主是程序文件自身的权限,而不是进程发起者
chmod u[+|-]s FILENAME 如果文件原来有执行权限就显示为s,反之显示S
SGID: 运行程序时,进程给的所属组是程序文件自身的数组,而不是进程发起者的基本组
为目录属性,给文件定义没有意义。
charp test /test 修改所属组
chmod g[+|-]s DIRNAME
Sticky: 在一个公共目录,每个用户都可以创建文件,删除自己的文件,但不能删除别人的文件 对目录有效
chmod o[+|-]t DIRNAME
扩展权限
setfacl Filesystem Access Control list
-m 设定
u: 用户
g: 组
setfacl -m u:UID:perm filename
-x 取消
u: 用户
g: 组
setfacl -x u:test rootpassword
setfacl -b rootpassword
getfacl filename
隐藏属性
chattr
+ 表示设置该属性
- 表示取消该属性
a
i
lsattr
shell特性:
1、命令行编辑
Ctrl+a 跳到命令行行首
Ctrl+e 跳到命令行行尾
Ctrl+d 向后删除,类似delete
Ctrl+u 删除光标至行首的内容
Ctrl+k 删除光标至行尾的内容
Ctrl+左右箭头, 在模拟终端中支持按单词跳转
Ctrl+l 清屏,等同于clear
Ctrl+c 取消执行当前命令
2、命令历史
history 命令历史管理
命令历史文件为~/.bash_history
命令历史大小由环境变量HISTSIZE来指定,默认为1000
变量配置文件为/etc/profile
-c 清空整个命令历史
-d 删除指定命令历史
-w 将缓冲区中的命令历史保存到命令历史文件
使用技巧
!n 执行命令历史中第n条命令
!-n 执行命令历史中倒数第n个命令
!! 执行上一条命令
!KEY 执行最近一次以指定KEY开头的命令
!$ 引用上一个命令中最后一个参数
ESC+. 同上,多次按还可以切换
ALT+. 同上,在远程终端无效?
3、自动补全
命令补全
在PATH环境变量下搜索补全要输入的命令
路径补全
在输入的字符开始的路径下补全
选项补全
在输入命令之后,可以自动补全选项
什么是变量?
内存使用空间的名称 命名的内存空间
相关文章:
RHCSA --- Linux用户/组权限
用户管理 useradd 创建用户 -u(UID) 指定UID -g(GID) 指定基本组 -G(GID1,GID2,...) 指定附加组 -c “注释信息” 指定用户注释信息(昵称) -d /path…...
怎么做到高性能网络IO?
为什么要做高性能网络IO。主要是解决c10,c10M问题 最开始的时候我们走的内核协议栈,走内核协议栈其实性能比较低,因为我们之前介绍的时候需要拷贝两次 但是我们采用用户态协议栈可以少拷贝一次,可以大大提高效率, 步骤…...
设计模式-创建型
文章目录 设计模式-创建型工厂模式简单工厂工厂方法抽象工厂 建造者模式单例模式原型模式 设计模式-创建型 本章主要介绍有关对象创建的几种设计模式。 工厂模式 工厂模式:封装了对象的创建,使得获得对象更加符合实际逻辑 简单工厂 将所有对象的生产…...
Word通过Adobe打印PDF时总是报错,打开记事本
Word文档打印,选择Adobe作为打印机,打印过程中总是报错,不断打开记事本,提示打印出错,错误信息如下: %%[ ProductName: Distiller ]%% %%[Page: 1]%% %%[Page: 2]%% %%[ Error: invalidfont; OffendingCom…...
第2关:还原键盘输入(list)
题目: 知识点: 列表list相较于数组: 优势:可在任意指定位置插入或者删除元素而不影响列表其他地方 。 劣势:无法直接进行下标索引,需要迭代器it逐个遍历。 代码: #include <iostream>…...
数据结构 | 栈的实现
数据结构 | 栈的实现 文章目录 数据结构 | 栈的实现栈的概念及结构栈的实现 Stack.h初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈 Stack.c 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。…...
python异常、模块与包
1.异常 异常:当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG。 1.1捕获异常 基本语法: try:可能发生错误代码 except:如果出现…...
虚拟内存和物理内存
虚拟内存的概念 虚拟内存是计算机系统内存管理的一种技术,它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储…...
FCA例题
Part.1:判断题 第1题 智能运维-负载管理中,实时负载通过使用图表直观的展示当前系统的最多最近半小时内存利用率和CPU利用率(正确) 第2题 服务器安装插件支持热部署,安装、删除、更新、禁用、启用不需要重启(正确) 第3题 次级管理员可新建…...
mysql使用GROUP BY归组后把所有记录id汇总到一个字段中
可以使用MySQL的GROUP_CONCAT函数来实现将归组后的记录的ID汇总到一个字段中。假设有一个名为table1的表,其中包含id和name两个字段,可以使用以下查询: SELECT name, GROUP_CONCAT(id) AS ids FROM table1 GROUP BY name;这将返回一个结果集…...
Vue3 使用Element Plus表格单选带checkbox
官方地址:添加链接描述 官方给出的多选带checkbox,单选直接选中当前行高亮,有时候不想要单行高亮,想要带checkbox的单选,需要对多选进行改造 官方给的多选例子: <template><el-tableref"mult…...
IOC - 自定义IOC容器
1、定义接口与实现类 // Service接口 public interface Service {void execute(); } // Service的实现类 public class MyService implements Service {Overridepublic void execute() {System.out.println("MyService 执行了.");} }2、自定义ioc容器以绑定接口与实…...
力扣第647题 回文子串 c++ 动态规划 双指针 附Java代码 注释解释版
题目 647. 回文子串 中等 相关标签 字符串 动态规划 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串…...
【Go入门】struct类型
【Go入门】struct类型 struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样…...
怎么改变容易紧张的性格?
容易紧张的性格是比较通俗的说法,在艾森克人格测试中,容易紧张的性格就属于神经症人格,神经质不是神-经-病,而是一种人格特征,这种特征包括:敏感,情绪不稳定,易焦虑和紧张。有兴趣的…...
合作共赢 共克时艰
采访人:最近财政部11月6日通报隐性债务问责典型案例,这中间涉及湖北多所重要地市,形成新增隐性债务200多亿,您怎么看这件事? 辜渝傧:是的,无论是数字还是涉及的范围都可以明显感觉到“防范…...
VCSA7许可证过期问题
公司两台ESXI7虚拟化系统,使用VCSA7进行日常管理,在使用过程中一直清单中包含过期或即将过期的许可证。 查看许可证清单中,已经添加了正式授权的许可证,且已经分配给了ESXI主机,但是任然有到期提示。 最后查看试用许可…...
解决win11更新后,文件夹打不开的bug
更新win11系统了,给我更了个bug,找了好多解决方案,发现下面这个可以解决问题。 第一步 找到注册表 第二步 备份注册表 为了防止意外情况,备份注册表。如有意外问题,可以导入导出的注册表进行恢复。 第三步 删除指定…...
修复了数个Bug!
v2.0.1版本已经在 github release 了,欢迎大家体验使用,开源版是永久免费的。 ## 新增与优化的功能 新增(测试报告): 测试报告根据测试执行详情,进行查看 新增(用户设置): 用户权限为普通用户和管理员,普通用户根据设置的默认产品…...
设计模式之--原型模式(深浅拷贝)
原型模式 缘起 某天,小明的Leader找到小明:“小明啊,如果有个发简历的需求,就是有个简历的模板,然后打印很多份,要去一份一份展示出来,用编程怎么实现呢?” 小明一听,脑袋里就有了…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
