目录
  • 一、常用操作
    • 1. 字母形式
    • 2. 数字形式
    • 3. 递归设置
  • 二、文件权限解读
    • 三、数字权限
      • 四、特殊的root权限
        • 五、SUID详解
          • 1. 设置SUID
          • 2. 取消SUID
          • 3. SUID提权

        作用:修改文件权限

        参数:

        • u      表示文件拥有者
        • g      表示文件所属的用户组
        • o      表示其他用户
        • a      a = u+g+o
        • +     增加权限
        • -     减少权限
        • =     设置权限
        • r      可读取
        • w      可写入
        • x      可执行
        • -R     递归修改

        一、常用操作

        chmod u+r a.txt		# 所属用户增加可读权限
        chmod u-r a.txt		# 所属用户减少可读权限
        chmod u=r a.txt		# 所属用户设置可读权限
        chmod a+r a.txt		# 给所有人增加可读权限
        chmod u+x,g+w a.txt		# 同时修改多个权限
        chmod ug+x a.txt		# 同时修改多个权限
        chmod 777 a.txt		# 给所有人增加读、写、执行权限
        chmod -R 777 目录	# 修改目录及目录下所有文件的权限

        1. 字母形式

        1)给文件的所属用户增加执行权限

        chmod u+x a.txt

        2)给文件的所属用户减少执行权限

        chmod u-x a.txt

        3)给文件的所属用户设置读写权限

        chmod u=rw a.txt

        4)给文件的所属组增加执行权限

        chmod g+x a.txt

        5)给文件的其他用户增加执行权限

        chmod o+x a.txt

        6)同时修改多个权限,用逗号间隔

        chmod u+x,g+w a.txt

        7)给所属用户和所属组同时增加可执行权限

        chmod ug+x a.txt

        8)同时给多个文件修改权限

        chmod u+x a.txt b.txt

        9)给所有人都增加可执行权限

        chmod a+x a.txt

        2. 数字形式

        1)给所有人都增加读、写、执行权限

        chmod 777 a.txt

        3. 递归设置

        修改目录的权限后,目录中的文件权限并不会改变。

        在这里插入图片描述

        想要把目录和目录下的所有文件都修改权限,可以加上 -R 参数

        chmod -R 777 目录

        在这里插入图片描述

        二、文件权限解读

        我们用 ls -l 命令查看文件信息时,会显示下面这些字段,其中最左边的那一串字母,就表示这个文件的权限

        drwxr-xr-x 2 root root 4096 Dec 16 13:56 a

        • 第一位:表示文件类型(d表示目录,-表示文件)
        • 第2~4位:表示文件所有者的权限
        • 第5~7位:表示用户组的权限
        • 第8~10位:表示其他用户的权限

        权限使用 r w x - 四种符号表示

        • r:read,表示读权限,文件可以被查看
        • w:write,表示写权限,文件可以被修改
        • x:execute,表示执行权限,文件可以被执行
        • -:表示没有权限

        三、数字权限

        chmod命令可以用八进制数来制定权限,数字和字母权限的对应关系如下:

        数字形式权限权限字母形式
        7读 + 写 + 执行rwx
        6读 + 写rw-
        5读 + 执行r-x
        4只读r–
        3写 + 执行-wx
        2只写-w-
        1只执行–x
        0

        四、特殊的root权限

        虽然我们经常管 root 叫超级管理员用户,但 root 的权限却不受到 chmod 命令的约束。

        比如 /etc/shadow 的权限是全空,正常来说,所有用户都不能查看这个文件,但 root 用户却可以查看它的内容。

        在这里插入图片描述

        这就意味着,root 的权限凌驾于Linux的权限管理机制之上。

        五、SUID详解

        SUID是Linux系统的一个特殊权限,可以让其他用户临时获取文件的执行权限。

        如果程序拥有SUID,程序运行为进程时,进程的所属用户就会变成程序的拥有者,而不是程序的调用者。

        就相当于用户使用程序拥有者的身份来运行这个程序。

        1. 设置SUID

        设置SUID的前提是,文件具有可执行权限,也就是 rwx 权限,在这个基础上,再给它增加 s 权限:

        chmod u+s a.txt

        在这里插入图片描述

        设置完SUID后可以看到,文件的权限由 rwx 变成 res

        如果给一个没有执行权限的文件设置SUID,就会变成一个大写的 S ,就是无效的意思。

        在这里插入图片描述

        2. 取消SUID

        减去 s 权限,就能取消SUID权限

        chmod u-s a.txt

        在这里插入图片描述

        3. SUID提权

        拥有SUID权限的文件,在执行过程中,调用者会暂时获得文件所有者的权限。

        如果文件的所有者是 root,低权限用户就可以利用这一点,进行提权。

        以下命令可以寻找,系统上正在运行的拥有SUID的文件。

        find / -user root -perm -4000 -print 2>/dev/null
        find / -perm -u=s -type f 2>/dev/null
        find / -user root -perm -4000 -exec ls -ldb {} ;

        Nmap和 Msfconsole等工具都有相应的SUID提权模块。

        以上就是Linux修改文件权限chmod命令详解的详细内容,更多关于Linux chmod命令的资料请关注本网站其它相关文章!

        您可能感兴趣的文章:

        • Linux文件和文件夹权限操作方法
        • Linux的文件存取权限和0644权限问题
        • 详解linux中的文件权限识别及修改
        • linux中文件权限的使用以及修改方式
        • Linux如何设置文件和文件夹的读写权限