热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux系统中权限修改命令详解:chmod使用方法与技巧

在Linux系统中,`chmod`命令用于修改文件和目录的访问权限。文件和目录的访问控制由其所有权和权限设置决定。本文将详细介绍`chmod`命令的使用方法和技巧,帮助用户更好地管理和控制文件系统的安全性。

Linux中的Chmod命令用于更改或分配文件和目录的权限。在Linux/Unix系统中,文件和目录的可访问性是由文件所有权和权限决定的。在本教程中,我们将介绍chmod命令。

chmod命令(change mode的缩写)用于管理文件和目录权限,并确定谁可以访问它们。现在让我们深入了解文件和目录权限的本质,以及如何修改它们。

Linux权限

为了更好地理解chmod命令是如何工作的,我们该谨慎地研究Linux文件权限模型。 在Linux中,我们具有3种类型的文件权限:读(r),写(w)和执行(x)权限。这些权限确定哪些用户可以读取,写入或执行文件。您可以使用文本或八进制(数字)表示法来分配这些权限,我们将在本教程后面讨论。 文件和目录可以属于文件(u),组(g)或其他(o)的所有者

u - 所有人的权限

g - 所有组的权限

o- 其他人的权限

使用ls -l命令以长格式的形式查看当前目录下所有可见文件的详细属性。该-l标志列出文件的权限。权限分为三组:用户(user)组(group)和其他(others)。 为了更好地理解文件权限,我们将列出目录的内容,如下所示:

linuxmi@linuxmi:~/www.linuxmi.com$ ls -l

071bd9d2a3ed2edf5d25a18cecf42c70.png

从最左端开始,第一个字符/符号表示文件类型。一个连字符( - ),表示该文件是一个普通文件。符号d表示它是目录。符号l表示它是符号链接。 其余的9个字符分成3个三元组,每个三元组带有三个符号r(read),w(write)和x(execute)。如前所述,第一部分指向所有者权限,第二部分指示组权限,最后一部分指定其他用户对该文件或目录具有的权限。 从输出中,我们可以看到我们有4个文件和2个目录。 让我们查看下第一个文件-rw-rw-r-- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.com.cpp 对于第一个文件,-rw-rw-r–权限表示该文件的所有者具有读取和写入权限,该组还具有读取和写入权限,而其他用户仅具有读取权限。 再看看目录的权限:drwxrwxr-x 3 linuxmi linuxmi 4096 10月 12 13:31 Linux迷 我们可以看到目录和组的所有者拥有所有权限(读取,写入和执行),而其他用户仅具有读取和执行权限。 在三重连字符符号-表示没有权限已被授予该文件,小组或其他用户的所有者。

使用chmod命令设置文件和目录权限

在查看了文件权限以及如何查看它们之后,我们不再关注如何修改这些权限。 Linux中的chmod命令用于使用文本(符号)或数字(八进制)表示法更改文件和目录权限。它采用以下语法:

$ chmod [选项]模式文件名

只有root用户或具有sudo特权的普通用户才能更改文件或目录权限。您可以在命令语法中传递多个文件或目录,并用空格分隔。 现在让我们深入研究并查看chmod命令的不同示例。

示例1)使用数字符号分配权限

使用数字样式/符号设置权限时,请使用以下语法:

$ sudo chmod [选项]数字值文件名 数值可以为3或4个数字。但是,在大多数情况下,使用3个数字。读取,写入和执行权限采用以下值:

读取权限=> 4

写权限=> 2

执行权限=> 1

权限值的总和,即在三个段中的每一个中的读取,写入和执行,都占给定文件或目录的完整权限。这是什么意思?假设所有者具有读取,写入和执行权限,该组具有读取和执行权限,而其他用户仅具有读取权限,可以将其细分如下:

u:rwx = 7 g:rx = 5 o:r– = 4 因此,我们得到的值为754,作为给定文件的文件权限的数值。 要将读取,写入和执行权限分配给所有者,而仅将读取权限分配给组和其他用户,请运行以下命令:$ chmod 744 www.linuxmi.com.txt 要将所有权限分配给文件的所有者,请对该组读取和执行权限,而对其他用户则完全没有权限,请执行:$ chmod 750 www.linuxmi.com.txt 要将所有权限分配给文件的所有者,请对该组具有读写权限,其他用户请运行以下命令:$ chmod 755 linuxmi.txt

示例2)递归分配目录权限

为目录分配权限时,请使用-R标志以递归方式为其目录和子文件夹分配权限。例如: $ chmod 755 -R 目录名

$ chmod 755 -R /home/linuxmi/linux

示例3)使用文本表示法指定权限

分配权限的另一种方法是使用文本表示法。在此方法中,chmod命令采用标志或符号,这些标志或符号代表语法中的所有者,组,其他或所有用户(u,g和o)。 该方法不像以前的方法那样简单明了,应注意避免分配错误的权限。 这是语法的样子

$ chmod [选项] [ugoa] [– + =] [r,w,x]文件 让我们分解一下。 第一组参数[ugoa]指定权限将更改的用户类别

u:用户

g:组

o:其他

a:全部(包括以上所有内容)

如果省略了这个集合,那么默认选项是a选项。 第二组选项–操作员选项[– + =]–确定是要添加权限还是要从用户类别中删除权限。选项删除

– :该标志从指定的用户中删除文件权限。

+ :将权限添加/添加到指定用户。

= :为指定的用户分配不同的权限,并删除该用户段的先前权限。

示例4)为文件分配读取权限

$ chmod o = r 文件名 上面的命令仅将用符号“ o”表示的其他用户分配给该文件的读取权限,并删除先前分配给' others '段的权限。取得具有以下权限的linuxmi.txt

linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt -rwxrwxr-x 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt

4b45f42c2104d58bc6fc975e6e474ca3.png

分配“others (o)”段的读权限,请仅运行linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod o=r linuxmi.txt [sudo] linuxmi 的密码: linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt -rwxrwxr-- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt

80f0dc7b55f29ca9007b314405aef38a.png

从输出中,我们可以看到已为“others”段分配了读取权限,而同时又失去了执行权限。这意味着=运算符将分配新的权限,而同时会删除以前的权限。

示例5)向文件和组所有者分配执行权限

linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod ug+x linuxmi.txt linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt -rwxrwxr-- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt 上面的命令将执行权限添加到文件的所有者和组。使用我们的文件,它将变成:

9019f47c648d0fa4d9848c2e657eec25.png

示例6)为文件,组和其他分配不同的权限

sudo chmod u=rwx,g=rw,o=r filename 上面的命令将所有权限分配给文件的所有者,将读写权限分配给组,仅将读取权限授予其他用户。

46f6dd84cd7434177cc9558350f58169.png

注意:如果在=运算符之后未指定任何权限,则将删除该用户段中的所有权限。

示例7)删除其他用户的所有权限

$ sudo chmod o= filename sudo chmod o= linuxmi.txt $ sudo chmod o-rwx linuxmi.txt 上面的命令从“其他”用户段中删除指定文件的所有权限。 该命令与以下命令具有相同的作用: $ sudo chmod o-rwx filename

linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod o= linuxmi.txt linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt -rwxrw---- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod o-rwx linuxmi.txt linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt -rwxrw---- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt

a6a7db94eefcbb255c79b7b3d9f0104d.png

示例8)使用模板文件分配权限

分配文件权限的另一种便捷方法是使用参考文件。在此方法中,您使用--reference= 选项将文件的权限设置为与另一个参考文件的权限相同。使用以下语法

$ sudo chmod –reference=ref_file filename 例如,要将linuxmi.txt的文件权限设置为与www.linuxmi.com.py的权限相同,请运行以下命令:$ sudo chmod --reference=www.linuxmi.com.py linuxmi.txt 模板文件是www.linuxmi.com.py,将linuxmi.txt更改为模板文件相同的权限。

ecf0d486f4c3b9b70c22615299abb38a.png

示例9)仅将执行权限分配给目录

假设我们有一个包含文件和子目录的目录,并且我们希望仅对目录分配执行权限,而不接触文件。因此,这可以通过使用以下chmod命令来实现,

$ chmod a+X * 如果您已经注意到,我们已经使用大写的X作为执行权限,以上命令将在当前工作目录的所有目录上设置执行权限。总结这个话题暂时到此结束。我们查看了chmod命令,并了解了可以使用该命令更改文件权限的各种示例。

责任编辑:xj

原文标题:【Linux】修改权限命令chmod用法示例

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。



推荐阅读
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
    本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
  • 本文探讨了如何使用ls -lsh命令排除总大小输出,仅显示文件大小的方法,并提供了几种实现这一目标的解决方案。 ... [详细]
  • 转自:http:www.yybug.comread-htm-tid-15324.html为什么使用Twisted? 如果你并不准备使用Twisted,你可能有很多异议。为什么使用T ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 在安装Ubuntu 12.10并尝试安装VMware Tools时,遇到了一个常见的错误提示:指定的路径不是有效的3.5.0-17-generic内核头文件路径。本文将提供解决这一问题的具体步骤。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
  • Linux环境下Git安装及常见问题解析
    本文详细介绍了在Ubuntu系统中安装Git的过程,包括环境检查、软件安装、用户配置以及SSH密钥生成等步骤,并针对安装过程中可能出现的问题提供了有效的解决方案。 ... [详细]
  • 本文探讨了在Unix/Linux环境下,如何有效地管理和运行长期或无限期运行的Python进程。文章不仅提供了关于进程崩溃后的处理方法,还讨论了使用Cron和Inetd等工具来优化进程管理的策略。 ... [详细]
  • 使用Jenkins构建Java项目实践指南
    本指南详细介绍了如何使用Jenkins构建Java项目,包括环境搭建、工具配置以及项目构建的具体步骤。 ... [详细]
author-avatar
放肆情人800
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有