Linux - 权限
文章目录
- 一、用户
- 二、文件
一、用户
1、Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制 。
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
2、su指令
(1)功能
su指令是Linux系统中用于切换用户身份的重要命令。
(2)语法
su [选项] [用户名]
(3)常用选项
-c:在切换用户身份后执行指定的命令,然后退回到原始用户身份。例如,su -c “ls /root” username会在切换到username用户后执行ls /root命令,然后退出。
-l 或 -:模拟用户登录过程,加载目标用户的环境变量和shell配置文件,如同用户真正登录一样。如果不带用户名,则默认切换到root用户。例如,su -或su -l会切换到root用户,并加载root的环境变量。
-s:指定切换用户后要使用的shell。例如,su -s /bin/bash username会在切换到username用户后,使用bash作为其shell。
-m 或 -p 或 --preserve-environment:在切换用户时保留当前用户的环境变量,不改变环境变量。这个选项与-l是互斥的,通常不建议同时使用。
-u:指定要切换到的目标用户ID或用户名。例如,su -u 1000或su -u username。
–help:显示su命令的帮助信息。
–version:显示su命令的版本信息。
(4)举例
由普通用户切换到root用户。
su - //或者su
由root用户切换到普通用户,并且回到普通用户的家目录下。
su -l xzy
3、添加和删除普通用户
只能在root账户下添加新普通用户,或者使用sudo指令提权。
命令:
添加普通用户。
adduser 用户名
设置密码,系统会提示我们输入两次密码。
passwd 用户名
删除普通用户。
userdel 用户名
如果想要同时删除用户的主目录和邮件目录,可以添加-r(或–remove)选项: userdel -r 用户名。
4、查看当前用户
普通账户的目录都存在家目录的/home
中。
cd /home
5、查看当前用户是谁和登录信息
(1)whoami 命令
whoami 命令用于显示当前用户的用户名。这是最直接和常用的方法之一。
whoami
(2)who命令
who
命令显示当前登录系统的所有用户的信息,包括用户名、登录终端、登录时间等。虽然这不是直接查看当前用户的方法,但它可以让你了解当前系统上有哪些用户登录。
who
6、sudo指令
(1)介绍与功能
sudo(superuser do 或 substitute userdo)是Linux和类Unix系统中一个非常有用的命令,它允许系统管理员授权某些用户(或用户组)以另一个用户的安全权限(通常是root用户)来运行命令。这与su命令(switch user 或 substitute user)的主要区别在于,sudo不需要知道目标用户的密码(如root),而是需要知道当前用户的密码,并且该用户必须被/etc/sudoers文件明确授权。
(2)给普通用户授权
步骤:在根目录下打开etc/sudoers
文件,然后找到下面更改,就可以了。
用户名 ALL=(ALL) ALL
(3)特点
(1)安全性:sudo提供了比su更高的安全性,因为它允许管理员精确地控制哪些用户(或用户组)可以运行哪些命令。
(2)审计追踪:所有通过sudo执行的命令都会被记录在日志中(通常是/var/log/auth.log或/var/log/secure),这使得系统管理员可以追踪哪些用户何时执行了哪些命令。
(3)无密码操作:在某些情况下,管理员可以配置/etc/sudoers文件,使得某些用户或用户组在特定条件下执行特定命令时无需输入密码。
(4)限制用户行为:通过/etc/sudoers文件,管理员可以限制用户只能执行某些命令,甚至只能以特定的用户身份执行这些命令。
(4)语法
sudo [选项] [命令]
(5)常用选项
-i,–login:以目标用户(通常是root)的身份登录shell。这与su -相似。
-u <用户>:以指定的用户身份执行命令。默认情况下,sudo会以root用户身份执行命令。
-l:列出当前用户可以执行的命令。
-v:验证用户的密码,并在用户下次使用sudo时不会要求再次输入密码(这取决于sudo的配置)。
(6)举例
使用普通用户执行需要root用户的命令。
sudo cat test.txt //假设该命令普通用户无法执行
按下回车后需要输入当前用户密码。
二、文件
1、文件包含什么?
文件 = 文件内容 + 文件属性
文件内容:文件内容通常指的是存储在文件中的数据或信息。
文件属性:如作者、文件大小、权限(读写执行)等。
2、文件访问者的分类
文件和文件目录的所有者:u—User 。
文件和文件目录的所有者所在的组的用户:g—Group 。
其它用户:o—Others。
3、Linux下的文件属性
(1)文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
(2)基本权限
i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 。
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限 。
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
(3)Linux下权限的表示
对于普通文件:
字符表示:
rw-
具有读写的权限但不具有执行的权限 。
八进制表示:110
具有读写的权限但不具有执行的权限。
补充:能否执行一个文件不仅需要看执行权限,还需要看当前文件是否有执行的能力。
4、文件访问权限的相关设置方法
说明:只有文件的拥有者和root才可以改变文件的权限。
(1)chmod指令
功能:
设置文件的访问权限。
语法:
chmod [选项] 权限 文件名
常用选项
R -> 递归修改目录文件的权限。
权限
用户表示符+/-=权限字符
实例:
+:向权限范围增加权限代号所表示的权限 。
-:向权限范围取消权限代号所表示的权限 。
=:向权限范围赋予权限代号所表示的权限 。
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
举例
设置其他用户也能读写文件file.txt
chmod o+rw file.txt
使用3位8进制数字修改文件权限
举例
将所有者的权限设置为读写,所属组和其他用户设置为只读。
chmod 644 file.txt
(2)chown指令
功能
修改文件的拥有者。
语法
chown [选项] 用户名 文件名
常用选项
-R 或 --recursive: 递归地更改指定目录及其内部所有文件和子目录的所有者。
举例
修改文件file.txt
的拥有者为用户xu
chown xu file.txt
递归的修改目录dir
的拥有者为xu
chown -R xu dir
(3)chgrp 指令
功能
修改文件或目录的所属组。
语法
chgrp [选项] 用户组名 文件名
常用选项
-R 递归修改文件或目录的所属组。
举例
修改文件file.txt
所属组为xu
chgrp xu file.txt
修改目录dir
的所属组为root
sudo chgrp -R root dir
普通用户将文件修改为root用户时需要越权处理。
(4)umask指令
功能
查看或修改文件掩码。
说明:
(1) 新建文件夹默认权限=0666 ,新建目录默认权限=0777。
(2)但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask 。
(3)超级用户默认掩码值为0022,普通用户默认为0002。
语法
umask 权限值
举例
查看文件掩码
umask
修改文件掩码为0001
umask 0001
(5)file指令
功能
它通过分析文件的头部信息或内容来识别文件类型,而不是仅仅依赖于文件的扩展名。
语法
file [选项] 文件或目录...
常用选项
-c :详细显示指令执行过程,便于排错或分析程序执行的情形。
-z :尝试去解读压缩文件的内容。
举例
查看文件file.txt
的文件类型。
file file.txt
查看压缩文件的类型
file file.zip
5、粘滞位
(1)介绍
在Linux系统中,粘滞位(Sticky Bit)是一个特殊的权限标志,它主要用于目录上,以保护目录中的文件不被非所有者用户随意删除或重命名。粘滞位是Unix文件系统权限的一个旗标,首次引入是在Unix的第5版中,但最初并不是用于目录保护,而是用于设置可执行文件。不过,随着Unix和Linux系统的发展,粘滞位的主要应用逐渐转变为对目录的保护。
(2)功能
(1) 保护目录中的文件:当目录设置了粘滞位后,只有该目录的所有者、文件的所有者或超级用户(root)才能删除或重命名该目录下的文件或子目录。这有助于防止非文件所有者用户误删或误操作重要文件。
(2)提升系统安全性:在公共目录(如/tmp)中设置粘滞位,可以防止普通用户删除或移动其他用户的临时文件,从而保护系统的稳定性和安全性。
(3)设置粘滞位
chmod +t 目录名
(4)注意事项
(1)粘滞位只对目录有效,对文件无效。
(2)粘滞位只能防止文件被非所有者用户删除或重命名,但不能阻止其他用户读取、写入或执行文件(具体取决于文件的其他权限设置)。
(3)粘滞位不能阻止其他用户往该目录中添加新的文件或子目录。
(4)只有目录的所有者、文件的所有者或超级用户(root)才能删除或重命名设置了粘滞位的目录中的文件或子目录。
6、文件确认用户身份
按照拥有者、所属组、其他用户的顺序确认、并且身份确定过程只会确定一次。
相关文章:

Linux - 权限
文章目录 一、用户二、文件 一、用户 1、Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 。 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“…...

免费图形化nginx管理工具nginxWebUI
nginxWebUI是一款图形化管理nginx配置得工具, 可以使用网页来快速配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 静态html服务器, ssl证书自动申请、续签、配置等, 配置好后可一建生成nginx.conf文件, 同时可控制nginx使用此文件进行启动与重载, 完…...
编程上的挫折不可怕,可怕的是你畏惧了
如何克服编程学习中的挫折感 编程学习之路上,挫折感就像一道道难以逾越的高墙,让许多人望而却步。然而,真正的编程高手都曾在这条路上跌倒过、迷茫过,却最终找到了突破的方法。那么,我是如何在Bug的迷宫中找到出口的&…...
docker逃逸手法
docker逃逸手法 基本docker操作docker 命令dockerfilesDocker Compose漏洞利用容器漏洞 基本docker操作 docker 命令 # docker拉取 docker pull # 指定版本拉取 docker pull ubuntu:22.04# 显示镜像可执行的操作 docker image # 列出存储在本地系统上的所有图像 docker image…...

3 pytest Fixture
3 pytest Fixture 3.1 通过 conftest.py 共享 fixture3.2 使用 fixture 执行配置及销毁逻辑3.3 使用 --setup-show 回溯 fixture 的执行过程3.4 使用 fixture 传递测试数据3.5 使用多个 fixture3.6 指定 fixture 作用范围3.7 使用 usefixtures 指定 fixture3.8 为常用 fixture …...

pinctl 和 gpio子系统驱动
一.设备树中添加pinctl节点模板 1.创建对应的节点 同一个外设的 PIN 都放到一个节点里面,打开 imx6ull-14x14-evk.dts,在 iomuxc 节点 中的“imx6ul-evk”子节点下添加 “pinctrl_test” 节点。添加完成以后如下所示: pinctrl_test:test_g…...
RocketMQ消息堆积了怎么解决?
RocketMQ 的消息堆积,一般都是因为客户端本地消费过程中,由于消费耗时过长或消费并发度较小等原因,导致客户端消费能力不足,出现消息堆积的问题。 当线上出现消息堆积的问题时,一般有以下几种方式来解决: 增加消费者…...

C++第十二弹 -- STL之list模拟实现
文章索引 前言模拟实现list1. ListNode节点类2. list的迭代器封装3. 反向迭代器4. list类的模拟实现测试代码 list的反向迭代器总结 前言 通过模拟实现可以让我们更加深刻的理解C底层STL的实现逻辑, 本篇就对list的底层进行模拟实现. 博客主页: 酷酷学!!! 点击关注 共同进步!…...

Destiny of Gods首轮测试正式开启,参与玩家数量突破10万
天神风云,波澜再兴,GameFi链游聚合平台Destiny of Gods首款同名数字卡牌回合制游戏首轮测试定档8月20日20:00(GMT8),现已正式开启! 这是一个由人、游灵和神灵共存的世界,历经蛮荒时期的纷争与信…...

QT聊天室基于Tcp
server.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),server(new QTcpServer(this)) // 给服务器指针对象实例化空间{ui->setupUi(this); }Widget::~Widget() {delete ui; }…...

公开课观后感:密歇根大学python for everyone
从2024年1月17日到2024年8月20日,终于将密歇根大学的python for everyone的python公开课跟完。站在一月份规划的时刻来看,比我想象中花费的时间更多,我当时肯定没有想到要花上整整七个月的时间才能将这个公开课的内容看完,毕竟这个…...
goweb框架-gin
文章目录 Gin框架概览Gin框架的特点Gin框架的安装和基本使用安装基本使用 路由系统路由的基本概念Gin框架路由的特点 Radix Tree(基数树)基数树的定义和原理基数树在Gin框架中的应用节省空间的优化动态路由和通配符处理 路由树的构建注册路由的过程路由树…...

2024年接口测试高频面试题及答案
1. 什么是接口测试? •接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求 •测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系 2. 为什么要做接口…...

ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(8)
接前一篇文章:ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(7) 前边几回分析了笔者在MQTT测试时所遇到的问题: 最终定位到了是由于components\components\tcp_transport\transport_ssl.c的base_poll_write函数中调用的select函数超时返回…...
Linux: 忘记密码的解决方法,passwd
https://www.redhat.com/sysadmin/recover-root-passwd 这里的方法很简单,就是通过console进去,添加一个启动参数,加载sysroot,然后用passwd命令修改密码。这个是RHEL7适用。 https://access.redhat.com/solutions/1192 这个是提…...

36. 有效的数独【 力扣(LeetCode) 】
一、题目描述 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图…...
机器学习中的没有免费午餐定理
嘿,各位机器学习的爱好者们!今天,让我们一起深入探讨机器学习中那个神秘而又重要的概念——没有免费午餐定理。 一、定理引入:探索算法森林的钥匙 在广阔无垠的机器学习领域中,免费午餐定理就如同一把神奇的钥匙&…...
高级java每日一道面试题-2024年8月21日-框架篇[Spring篇]-使用IOC容器应该注意哪些?
如果有遗漏,评论区告诉我进行补充 面试官: 使用IOC容器应该注意哪些? 我回答: 1. 理解IOC的基本概念 控制反转:在传统的编程模式中,程序会主动控制依赖关系的创建和管理。而在IoC容器中,这种控制权被反转给了容器本身。程序员只需要声明…...
LLM训练推理相关概念
1. 有监督微调(Supervised Fine-Tuning)与指令微调(Instruction Fine-Tuning)对模型参数的影响 **有监督微调(Supervised Fine-Tuning, SFT)和指令微调(Instruction Fine-Tuning, Instruct-Tun…...

IP in IP 协议
IP in IP 是一种多重IP协议,即:客户机可以发送一个IP协议内部在嵌套一个IP协议到某个特定的主机上,在由具体的主机作为路由进行转发的协议。 例如: IP in IP帧协议结构为,第一层为发送到IP in IP 路由主机的报文&…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...