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

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

一.前言

今天我们来讲讲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.xdnf.cn/news/392905.html

相关文章:

  • 产业带数据采集方案:1688 API 接口开发与实时数据解析实践
  • 【人工智能】 大模型训练的艺术:从数据到智能的飞跃
  • 【RP2350】香瓜树莓派RP2350之Delay延时
  • 基于SpringBoot的在线教育管理系统
  • spring
  • Python工具链UV整合环境管理
  • 国内外主流AI编程工具全方位对比分析(截至2025年5月)
  • SpringCloud Gateway知识点整理和全局过滤器实现
  • Python中,async和with结合使用,有什么好处?
  • redis数据结构-07(SADD、SREM、SMEMBERS)
  • c++STL-string的模拟实现
  • 谷歌与微软的AI战争:搜索、云服务与生态布局
  • 【Part 2安卓原生360°VR播放器开发实战】第四节|安卓VR播放器性能优化与设备适配
  • JVM调优-重启CPU飙高优化
  • SQlite数据库
  • 优化理赔数据同步机制:从4小时延迟降至15分钟
  • Day22 Kaggle泰坦尼克号训练实战
  • java加强 -List集合
  • LeetCode百题刷003(449周赛一二题)
  • 文件包含3
  • Qt 信号与槽及元对象系统
  • 判断两台设备是否在同一局域网内的具体方法
  • Unity 红点系统
  • Rockchip RK3308 开发(二)
  • 【人工智能】全面掌控:使用Python进行深度学习模型监控与调优
  • Springboot整合Swagger3
  • HttpServletResponse的理解
  • 【音视频工具】ffplay介绍
  • Redis 分布式锁
  • iOS实名认证模块的具体实现过程(swift)