Linux中修改文件权限chmod命令详解

 更新时间:2023年08月13日 11:36:06   作者:士别三日wyx  
在Linux系统中,chmod命令用于更改文件或目录的权限,它可以授予或撤销对文件的读取、写入和执行权限,本文给大家详细的介绍了Linux修改文件权限chmod命令用法,需要的朋友可以参考下

作用:修改文件权限

参数:

  • 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命令的资料请关注脚本之家其它相关文章!

相关文章

  • 使用shell读取ini文件方法步骤

    使用shell读取ini文件方法步骤

    本文主要介绍了使用shell读取ini文件方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 合并一个文件夹下多个文件内容的单行shell命令

    合并一个文件夹下多个文件内容的单行shell命令

    有时候我们需要合并一个文件夹下多个文件内容,那么就可以参考下面的代码,单行shell就是可以实现了,需要的朋友可以参考下
    2013-02-02
  • linux链接编译详解

    linux链接编译详解

    通过自己编写Makefile文件来实现多目标文件的链接,其实就是将gcc 编译命令写入到Makefile文件,通过执行make 指令来实现编译。这样我不需要每次都敲入gcc -指令。直接输入make就OK了。
    2014-02-02
  • Linux进程间通信——使用流套接字

    Linux进程间通信——使用流套接字

    本篇文章将会简单地讲述如何使用socket进行简单的网络编程。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Shell脚本读取ini配置文件的实现代码2例

    Shell脚本读取ini配置文件的实现代码2例

    这篇文章主要介绍了Shell脚本读取ini配置文件的实现代码2例,如果只是读取内容推荐使用简单版,有更多需求请见复杂版,需要的朋友可以参考下
    2014-08-08
  • 数值运算shell脚本

    数值运算shell脚本

    这次的shell案例比较简单,但有其特点,脚本整体简洁明了,但功能强大,可以实现带自定义数值运算
    2016-08-08
  • linux 权限管理命令脚本解析

    linux 权限管理命令脚本解析

    这篇文章主要为大家介绍了linux 权限管理命令脚本解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Shell脚本实现批量生成nagios配置文件

    Shell脚本实现批量生成nagios配置文件

    这篇文章主要介绍了Shell脚本实现批量生成nagios配置文件,本文使用配置文件模板加上文件替换的方法实现批量生成配置文件,需要的朋友可以参考下
    2015-07-07
  • Linux下date命令,格式化输出,时间设置方法

    Linux下date命令,格式化输出,时间设置方法

    下面小编就为大家带来一篇Linux下date命令,格式化输出,时间设置方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Linux Shell中三种引号的用法及区别

    Linux Shell中三种引号的用法及区别

    Linux Shell中有三种引号,分别为双引号(" ")、单引号(' ')以及反引号(` `)。那么这三种引号有什么区别呢?下面脚本之家小编给大家介绍下用法及区别,需要的的朋友参考下
    2017-03-03

最新评论