linux基础操作4------(权限管理)

news2025/5/13 0:09:23

一.前言

今天我们来讲讲linux的权限管理,比如文件的权限,如果大家看过前面说的app逆向的frida,我们在手机里要给frida,我们都要设置一下chomd 777 frida ,这样就给了可执行权限,这就是这一章要讲的,但是大多也还是作为一个知识的了解。

二.权限介绍和示例

root用户权限最高,所以一般对他不做什么权限设置。其他用户就要设定权限并且遵守权限了。

文件权限:

2.1 文件权限

#文件属性

[root@localhost ~]# ls -l /tmp/123.txt

-rw-r--r--. 1 root root 0 7月 20 23:17 /tmp/123.txt

#第一段的第一个字符,表示文件类型 -文件、d目录、l软链接(对应着windows快捷方式)、b块设备(ls /dev,可以看到硬盘sda等)

#第一段第2-4字符,表示该文件所属用户的权限

#第一段第5-7字符,表示该文件所属用户组的权限

#第一段第8-10字符,表示其他用户对该文件的权限

r 4 代表读权限 read

w 2 代表写权限 write

x 1 代表可执行权限 executable

- 0 空权限位,表示没有这个权限,9位权限不能少,没有的权限就用-代替。

权限值表

0 ---

1 --x

2 -w

3 -wx

4 r--

5 r-x

6 rw-

7 rwx

ugo权限体系:

        rw-   r--       r--

        user group other

三.可执行程序特殊目录说明

通过echo $PATH可以看到,类似于windows的环境变量中的PATH。反式放到这个目录中的命令程序, 我们可以在任意目录下通过这个命令程序名称来直接调用命令来执行:

例如 

[lisi@localhost tmp]$ echo $PATH # 下面这几个就是环境变量路径存放位置

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lisi/.local/bin:/home/li si/bin lisi@localhost tmp]$ cp ./ls /home/lisi/bin/

[lisi@localhost tmp]$ ls /home/lisi/bin/ ls

[lisi@localhost tmp]$ mv /home/lisi/bin/ls /home/lisi/bin/xxx # 为了不和系统默认的ls冲突,我们改名为xxx

[lisi@localhost tmp]$ ls /home/lisi/bin/

xxx

[lisi@localhost tmp]$ xxx

[lisi@localhost tmp]$ xxx # 命令可以在任意目录下直接执行

1.txt                                         vmware-root_552-2957583561

ls

四.权限值

权限值:

r 4

w 2

x 1

- 0

权限值表

0 ---

1 --x

2--w

3 -wx

4 r--

5 r-x

6 -rw

7 rwx 

修改权限举例

如果我们想将某个文件的:rwxr-xr-x权限改为--x-w-r--,如果按照前面我们chmod指定字母的形式来修 改,就比较麻烦,直接使用权限对应的数字改就很方便:

rwxr-xr-x 对应的值为:755

--x-w-r-- 对应的值为:124

[lisi@localhost tmp]$ chmod 124 1.txt

[lisi@localhost tmp]$ ls -l

总用量 144

---x-w-r--. 1 lisi lisi 25 3月 20 09:24 1.txt

别人再问你,某个文件的权限是多少的时候,我们一般都是直接报数字值,比如它的权限是755 

4.1 改变文件的权限 

#例如:chomd -r,就是去掉r权限,chomd +r就是加上读权限

chmod

例子1:

#修改权限之前

[test1@localhost tmp]$ ls -l

总用量 4

-rw-rw----. 1 test1 test1 8 7月 20 17:20 test1.txt

#修改权限

[test1@localhost tmp]$ chmod u+x test1.txt

#修改权限之后

[test1@localhost tmp]$ ls -l

总用量 4

-rwxrw----. 1 test1 test1 8 7月 20 17:20 test1.txt

例子2:

同时修改多个权限

[test1@localhost tmp]$ chmod u-x,g-x,o+x test1.txt

[test1@localhost tmp]$ ls -l

总用量 4

-rw-rw---x. 1 test1 test1 8 7月 20 17:20 test1.txt

例子3:数字修改更方便

[test1@localhost tmp]$ chmod 777 test1.txt

[test1@localhost tmp]$ ls -l

总用量 4

-rwxrwxrwx. 1 test1 test1 8 7月 20 17:20 test1.txt 

五.修改文件所属 

5.1 改变文件拥有者

chown,全称Change Owner,改变拥有者。

#修改文件的所属,普通用户是不能修改其他用户文件的所属的,需要root用户,所以先切换到root用户来操作

chown

例子1:修改所属用户和用户组,test2:test2,前面的test2表示用户,后面的test2是组[root@localhost tmp]# chown test2:test2 ls

[root@localhost tmp]# ls -l

总用量 404

-rwxr-xr-x. 1 test2 test2 159024 7月 20 17:43 grep

-rwxr-xr-x. 1 test2 test2 117608 7月 20 17:38 ls

-rwxr-xr-x. 1 test1 test1 130360 7月 20 17:43 mv

-rw-rw-rw-. 1 test1 test1 14 7月 20 17:38 test1.txt

# 修改所属用户

[root@localhost tmp]# chown test1 ls

[root@localhost tmp]# ls -l

总用量 404

-rwxr-xr-x. 1 test2 test2 159024 7月 20 17:43 grep

-rwxr-xr-x. 1 test1 test2 117608 7月 20 17:38 ls

-rwxr-xr-x. 1 test1 test1 130360 7月 20 17:43 mv

-rw-rw-rw-. 1 test1 test1 14 7月 20 17:38 test1.txt

# 修改目录权限和所属

例子3:文件夹(目录权限)

用root用户创建一个文件夹,文件夹默认所属用户和组为root:root,那么普通用户是没全限制在这个目录 中创建文件的。

[root@localhost ~]# cd /tmp/

[root@localhost tmp]# mkdir jaden

[root@localhost tmp]# ls -l

drwxr-xr-x. 2 root root 6 3月 20 11:36 jaden

普通用户,比如lisi想在里面创建文件:

[lisi@localhost tmp]$ cd jaden/

[lisi@localhost jaden]$ touch 2.txt

touch: 无法创建"2.txt": 权限不够

如何让lisi有创建文件的权限呢?创建文件的权限就是目录写权限

首先要切换到root用户,然后用root用户修改目录权限,或者直接将目录的所属修改为lisi修改权限:

        [root@localhost tmp]# chmod o+w jaden

        [root@localhost tmp]# ls -l

        drwxr-xrwx. 2 root root 6 3月 20 11:36 jaden

切换到lisi,创建文件:

        [lisi@localhost jaden]$ touch 2.txt

        [lisi@localhost jaden]$ ls

         2.txt

修改所属:

        [root@localhost tmp]# chmod o-w jaden

        [root@localhost tmp]# ls -l

        drwxr-xr-x. 2 root root 19 3月 20 11:39 jaden

        [root@localhost tmp]# chown lisi:lisi jaden

        [root@localhost tmp]# ls -l

        drwxr-xr-x. 2 lisi lisi 19 3月 20 11:39 jaden

切换到lisi:

        [lisi@localhost jaden]$ touch 3.txt

        [lisi@localhost jaden]$ ls 2.txt 3.txt

lisi也可以修改目录的权限了,因为它完全属于的lisi:

        [lisi@localhost tmp]$ chmod o+w jaden

        [lisi@localhost tmp]$ ls -l

        drwxr-xrwx. 2 lisi lisi 32 3月 20 11:42 jaden

#使用uid和gid修改文件的所属用户和所属用户组 属主,属组

例子2:

[root@localhost tmp]# ls

-l总用量 404

-rwxr-xr-x. 1 test2 test2 159024 7月 20 17:43 grep

-rwxr-xr-x. 1 test1 test2 117608 7月 20 17:38 ls

-rwxr-xr-x. 1 test1 test1 130360 7月 20 17:43 mv

-rw-rw-rw-. 1 test1 test1 14 7月 20 17:38 test1.txt

[root@localhost tmp]# id test1

uid=1000(test1) gid=1000(test1) 组=1000(test1)

[root@localhost tmp]# id test2

uid=1001(test2) gid=1001(test2) 组=1001(test2)

[root@localhost tmp]# useradd -g test1 test3

[root@localhost tmp]# id test3

uid=1002(test3) gid=1000(test1) 组=1000(test1)

[root@localhost tmp]# chown 1001:1001 test1.txt

[root@localhost tmp]# ls -l

总用量 404

-rwxr-xr-x. 1 test2 test2 159024 7月 20 17:43 grep

-rwxr-xr-x. 1 test1 test2 117608 7月 20 17:38 ls

-rwxr-xr-x. 1 test1 test1 130360 7月 20 17:43 mv

-rw-rw-rw-. 1 test2 test2 14 7月 20 17:38 test1.txt

文件权限和目录权限的解释说明: 

文件权限: rwx 读写执行

目录的权限: rwx,r表示可以查看目录下有哪些文件 x表示可以cd切换到该目录 w表示可以在目录中创 建、修改、删除文件等操作

为了安全操作: 文件权限默认: 644权限、狠一点就给600权限

目录权限默认: 755权限、狠一点就给700权限 

六.文件属性详解 

#文件属性

[root@localhost ~]# ls -l

-rw-rw-rw-. 1 lisi lisi 0 3月 20 16:00 222.txt

#第一段的第一个字符,表示文件类型 -文件、d目录、l软链接(对应着windows快捷方式)、b块设备(ls /dev,可以看到硬盘sda等)

#第一段第2-4字符,表示该文件所属用户的权限

#第一段第5-7字符,表示该文件所属用户组的权限

#第一段第8-10字符,表示其他用户对该文件的权限

#第一段的第11个字符. ,表示开启selinux的状态下创建的,也证明selinux是开启状态的。

# 看到.表示这个文件受到selinux的保护,selinux:https://baike.baidu.com/item/SELinux/8865268?fr=aladdin,这个东西很安全,但是有了它变 得很麻烦,安全和便利一般是冲突的。主要是红帽系的系统(redhat\centos\阿里的龙蜥\华为的欧拉)有这 个机制。我们一般上来就是关闭它,安全方面我们通过其他方法来控制。查看selinux的指令:

        # 查看状态

        [lisi@localhost tmp]$ sestatus

        SELinux status: enabled # enabled表示开启状态,disabled表示禁用状态

        SELinuxfs mount: /sys/fs/selinux

        SELinux root directory: /etc/selinux

        Loaded policy name: targeted 、

        Current mode: enforcing

        Mode from config file: enforcing

        Policy MLS status: enabled

        Policy deny_unknown status: allowed

        Max kernel policy version: 31

        # 关闭和开启selinux,需要root权限才能修改

        [root@localhost tmp]# ls -l /etc/selinux/config

        -rw-r--r--. 1 root root 543 3月 15 20:11 /etc/selinux/config

         [root@localhost tmp]# vi /etc/selinux/config

        把7行改为: SELINUX=disabled #然后保存退出,并且重启系统才会生效。

        # 然后再登录创建文件,查看文件信息,就看不到.了

        [root@localhost ~]# touch 1.txt 

        [root@localhost ~]# ls -l

        总用量 16

        -rw-r--r-- 1 root root 0 3月 20 13:32 1.txt

#第二段的数字,表示该文件的硬链接数量,其实这个和我们的安全没有太大关系,运维人员需要学习,ln是 创建硬链接的指令。我们不提了

#第三段的字符串,表示该文件所属用户

#第四段的字符串,表示该文件所属用户组

#第五段的数字,表示该文件的大小,默认单位为B,如果想按照KB来显示,那么可以通过ls -lh指令来查 看。h是human的意思,以人类可读的方式显示,会自动按照文件大小来设定显示单位。

#第六段到倒数第二段,都是该文件的修改时间,只要改动了文件内容,这个时间就会自动变为修改文件时的时 间。

        #其实linux系统会记录三个时间:

                # 访问时间(access time) 文件被打开时自动变化这个时间

                # 修改时间(modify time) 文件内容发生变化时自动改变这个时间,ls -l 显示的就是这个时 间。

                # 改变时间(change time) 文件属性发生变化时自动改变这个时间,文件大小也是文件的属性, 所以修改文件内容导致大小变化的时候,这个时间也会自动改变。

        #windows系统也会记录三个时间:访问时间、创建时间、修改时间

        #linux下通过stat指令来查看:

                  [root@localhost ~]# stat 1.txt

                        文件:"1.txt"大小:0 块:0 IO 块:4096 普通空文件

                        设备:801h/2049d Inode:67108933 硬链接:1

                        权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)

                        最近访问:2023-03-20 13:32:34.333042228 +0800

                        最近更改:2023-03-20 13:32:34.333042228 +0800

                        最近改动:2023-03-20 13:32:34.333042228 +0800

                        创建时间:-

        # 我们改一下文件权限,然后再看时间

                [root@localhost ~]# chmod 777 1.txt

                [root@localhost ~]# stat 1.txt

                        文件:"1.txt"

                        大小:0 块:0 IO 块:4096 普通空文件

                        设备:801h/2049d Inode:67108933 硬链接:1

                        权限:(0777/-rwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)

                        最近访问:2023-03-20 13:32:34.333042228 +0800

                        最近更改:2023-03-20 13:32:34.333042228 +0800

                        最近改动:2023-03-20 13:56:43.005634151 +0800 # 改动时间变了

                        创建时间:-

#最一段,该文v

linux一切皆文件的系统。

七.总结

今天说的就这么多,主要其实还是做个了解就好,期待大家的点赞关注收藏 

 

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

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

相关文章

双系统电脑中如何把ubuntu装进外接移动固态硬盘

电脑:win11 ubuntu22.04 实体机 虚拟机:VMware17 镜像文件:ubuntu-22.04.4-desktop-amd64.iso 或者 ubuntu20.4的镜像 外接固态硬盘1个 一、首先win11中安装vmware17 具体安装方法,网上很多教程 二、磁盘分区 1.在笔…

【C语言】程序的预处理,#define详解

一、预定义符号 二、#define 1.#define定义标识符 #define + 自定义名称 + 代替的内容 例: #define MAX 100 #define CASE break;case #define CASE break;caseint main() {int n 0;switch (n){case 1:CASE 2:CASE 3:CASE 4:}return …

NVM完全指南:安装、配置与最佳实践

发布于 2025年5月7日 • 阅读时间:10分钟 💡 TL;DR: 本文详细介绍了如何完整卸载旧版Node.js,安装NVM,配置阿里云镜像源,以及设置node_global与node_cache目录,打造高效Node.js开发环境。 📋 目…

(二)毛子整洁架构(CQRS/Dapper/领域事件处理器/垂直切片)

文章目录 项目地址一、Application 层1.1 定义CQRS的接口以及其他服务1. Command2. IQuery查询3. 当前时间服务接口4. 邮件发送服务接口 1.2 ReserveBooking Command1. 处理传入的参数2. ReserveBookingCommandHandler3. BookingReservedDomainEvent 1.3 Query使用Sql查询1. 创…

如何修改MySQL数据库密码

文章目录 一、忘记数据库密码该如何修改1. 关闭数据库的服务2.跳过安全检查3. 重置密码4.查询用户是否存在5.退出验证密码是否正确 二、未忘记密码该如何修改密码1.直接修改密码2.登录mysql 时间久了,忘记数据库密码了。。。。。 一、忘记数据库密码该如何修改 1. …

【Python】mat npy npz 文件格式

1、简介 MAT 文件和 NP(.npy 或 .npz)文件是两种不同的格式,用于存储数组数据。它们分别由 MATLAB 和 NumPy 开发,主要用于各自环境中的数据存储和交换。以下是这两种格式的主要区别: 1.1 格式和用途 MAT 文件&…

SpringBoot快速入门WebSocket(​​JSR-356附Demo源码)

现在我想写一篇Java快速入门WebSocket,就使用 JSR-356的websocket,我想分以下几点, 1. websocket介绍, 1.1 介绍 什么是WebSocket?​​ WebSocket 是一种基于 ​​TCP​​ 的​​全双工通信协议​​,允许客户端和服务器在​​单个长连接​​上实…

【安装配置教程】ubuntu安装配置Kodbox

目录 一、引言 二、环境配置 1. 服务器配置​ 2. 必备组件​ 三、安装基础环境​ 1. 安装 PHP 8.1 及扩展​ 2. 安装 MySQL 数据库 3.安装 Redis(可选,提升缓存性能) 4. 配置nginx文件 4.1. 创建 Kodbox 站点目录​ 4.2. 编写 Ng…

LabVIEW车牌自动识别系统

在智能交通快速发展的时代,车牌自动识别系统成为提升交通管理效率的关键技术。本案例详细介绍了基于 LabVIEW 平台,搭配大恒品牌相机构建的车牌自动识别系统,该系统在多个场景中发挥着重要作用,为交通管理提供了高效、精准的解决方…

c语言第一个小游戏:贪吃蛇小游戏01

hello啊大家好 今天我们用一个小游戏来增强我们的c语言! 那就是贪吃蛇 为什么要做一个贪吃蛇小游戏呢? 因为这个小游戏所涉及到的知识有c语言的指针、数组、链表、函数等等可以让我们通过这个游戏来巩固c语言,进一步认识c语言。 一.我们先…

[项目总结] 抽奖系统项目技术应用总结

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

机器视觉的平板电脑屏幕组件覆膜应用

在现代智能制造业中,平板电脑屏幕组件覆膜工序是确保产品外观和功能完整性的重要环节。随着技术的进步,传统的覆膜方式已经无法满足高速度、高精度的生产需求。而MasterAlign视觉系统的出现,将传统覆膜工艺转变为智能化、自动化的生产流程。在…

更换内存条会影响电脑的IP地址吗?——全面解析

在日常电脑维护和升级过程中,许多用户都会遇到需要更换内存条的情况。与此同时,不少用户也担心硬件更换是否会影响电脑的网络配置,特别是IP地址的设置。本文将详细探讨更换内存条与IP地址之间的关系,帮助读者理解这两者之间的本质…

VMware安装CentOS Stream10

文章目录 安装下载iso文件vmware安装CentOS Stream创建新虚拟机安装CentOS Stream10 安装 下载iso文件 官方地址:跳转链接 vmware安装CentOS Stream 创建新虚拟机 参考以下步骤 安装CentOS Stream10 指定ISO文件 开启虚拟机选择Install CentOS Stream 10 鼠…

基于Dify实现对Excel的数据分析

在dify部署完成后,大家就可以基于此进行各种应用场景建设,目前dify支持聊天助手(包括对话工作流)、工作流、agent等模式的场景建设,我们在日常工作中经常会遇到各种各样的数据清洗、格式转换处理、数据统计成图等数据分…

资产月报怎么填?资产月报填报指南

资产月报是企业对固定资产进行定期检查和管理的重要工具,它能够帮助管理者了解资产的使用情况、维护状况和财务状况,从而为资产的优化配置和决策提供依据。填写资产月报时,除了填报内容外,还需要注意格式的规范性和数据的准确性。…

MIT XV6 - 1.3 Lab: Xv6 and Unix utilities - primes

接上文 MIT XV6 - 1.2 Lab: Xv6 and Unix utilities - pingpong primes 继续实验,实验介绍和要求如下 (原文链接 译文链接) : Write a concurrent prime sieve program for xv6 using pipes and the design illustrated in the picture halfway down this page and…

从前端视角看网络协议的演进

别再让才华被埋没,别再让github 项目蒙尘!github star 请点击 GitHub 在线专业服务直通车GitHub赋能精灵 - 艾米莉,立即加入这场席卷全球开发者的星光革命!若你有快速提升github Star github 加星数的需求,访问taimili…

Docker中运行的Chrome崩溃问题解决

问题 各位看官是否在 Docker 容器中的 Linux 桌面环境(如Xfce)上启动Chrome ,遇到了令人沮丧的频繁崩溃问题?尤其是在打开包含图片、视频的网页,或者进行一些稍复杂的操作时,窗口突然消失?如果…

【沉浸式求职学习day36】【初识Maven】

沉浸式求职学习 Maven1. Maven项目架构管理工具2.下载安装Maven3.利用Tomcat和Maven进入一个网站 Maven 为什么要学习这个技术? 在Java Web开发中,需要使用大量的jar包,我们手动去导入,这种操作很麻烦,PASS&#xff01…