chmod 755 究竟是什么鬼?

chmod 755 究竟是什么鬼?有个校招的同事问我:(1)使用ls–l查看文件,前面显示的-rwxrwxr-x是什么意思?(2)chmod755xxx.sh又是什么意思?1分钟简单说下,这两个…

大家好,又见面了,我是你们的朋友全栈君。

有个校招的同事问我:

(1) 使用ls –l查看文件,前面显示的-rwxrwxr-x是什么意思?

(2) chmod 755 xxx.sh又是什么意思?

1分钟简单说下,这两个和权限相关的问题。

 

先说下文件类型,访问方式,权限分类。

 

Linux下,分为这么几种文件类型:

  • d:目录directory

  • l:符号链接link

  • s:套接字socket

  • c:字符设备char

  • p:命名管道pipe

  • –:其他,不属于以上几类

 

文件创建后,有三种访问方式:

  • 读(read):显示内容

  • 写(write):编辑内容,删除文件

  • 执行(execute):执行文件

 

针对用户,文件有三类权限:

  • 创建人(user)权限:创建文件的人

  • 组(group)用户权限:和拥有者处于同一用户组的其他人

  • 其他(other)用户权限

 

了解了文件类型,访问方式,三类权限之后,第一个问题就比较好解答了。

640?wx_fmt=png

例如,上述a.out的第一列

-rwxrwxr-x

共有十个字符,分为四个部分:

  • 第1个字符表示文件的类型:[-]表示普通文件

  • 第234字符表示创建人的权限:[wxr]表示可读,可写,可执行

  • 第567字符表示组用户权限:[wxr]表示可读,可写,可执行

  • 第890字符表示其他用户权限:[r-x]表示可读,可执行

 

如何改变文件的权限呢?

chmod命令用于改变文件的权限,它有两种使用方法。

 

第一种:chomod [who] [operator] [permission] filename


[who]

  • u:创建人

  • g:组用户

  • o:其他用户

  • a:所有用户(all)

 

[operator]

  • +:增加权限

  • –:取消权限

  • =:设定权限

 

[permission]

  • r:读

  • w:写

  • x:执行

 

如何给一个文本文件xxx.sh增加可执行权限?

chmod u+x xxx.sh

 

如何不让其他用户修改xxx.sh?

chmod go-w xxx.sh

 

第二种方法:chmod [mode] filename


[mode]是一个3位八进制数:

  • 第一位表示创建者权限

  • 第二位表示组用户权限

  • 第三位表示其他用户权限

 

更具体的:

400:创建者可读

200:创建者可写

100:创建者可执行

040:组用户可读

020:组用户可写

010:组用户可执行

004:其他用户可读

002:其他用户可写

001:其他用户可执行

 

3位对应位的对应数字加起来,最终就是三类用户的最终权限。

 

如何回收非创建者用户对xxx.sh的所有权限?

chmod 700 xxx.sh

第一位7:4+2+1,创建者,可读可写可执行

第二位0:组用户,无权限

第三位0:其他用户,无权限

 

xxx.sh只允许创建者修改,允许其他用户读取和执行,怎么设置?

chmod 755 xxx.sh

第一位7:4+2+1,创建者,可读可写可执行

第二位5:4+1,组用户,可读可执行

第三位5:4+1,其他用户,可读可执行

画外音:一般来说,写了一个工具,只允许自己修改,不允许别人修改,但允许别人使用,这就是755。

 

-rwxrwxr-x

chmod 755

有意思么?

640?wx_fmt=jpeg

架构师之路-分享可落地的架构文章

最近1个月基本在写MySQL和InnoDB:

《快照读,在RR和RC下有何差异?》

《超赞,InnoDB调试死锁的方法!》

最近两篇偏底层,阅读比较低,还挺遗憾的,后续规划换一个话题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160123.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MYSQL哪些情况下会忽略索引[通俗易懂]

    MYSQL哪些情况下会忽略索引

    2022年2月13日
  • rabbitmq使用案例_标点符号的正确使用方法及例子

    rabbitmq使用案例_标点符号的正确使用方法及例子一些概念:RabbiMQ的认知:首先要抛弃熟悉的客户端和服务器的观念。对于RabbitMQ应该认为是消息投递服务。、               其次:从应用程序角度来看RabbitMQ的话,应用程序要先决定是个消息的发送者还是消息的接受者。                    如果从RabbitMQ的角度来看的话…

    2022年10月3日
  • Java的常用输入输出语句

    Java的常用输入输出语句一、概述  输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。Java语言体系中,对数据流的主要操作都封装在java.io包中,通过java.io包中的类可以实现计算机对数据的输入、输出操作…

    2022年5月26日
  • PTP授时服务器(NTP网络时间服务器)技术方案应用

    PTP授时服务器(NTP网络时间服务器)技术方案应用PTP授时服务器(NTP网络时间服务器)技术方案应用PTP授时服务器(NTP网络时间服务器)技术方案应用摘要:文章介绍了北斗卫星系统授时原理,分析了北斗/GPS双模授时在CDMA无线通信系统中应用的可行性,并给出了北斗/GPS双模授时系统的组成和在CDMA中的两种应用方式。1、概述卫星导航定位与授时系统是现代化大国极为重要的基础设施,卫星导航系统提供的精密授时在一个国家的工业、国防、通信等领域有着广泛和重要的应用。目前的卫星导航系统主要有美国的全球卫星定位系统GPS、俄罗斯的全球卫星导航系统GLO

    2022年11月1日
  • 基于MAX31865的温度控制系统

    基于MAX31865的温度控制系统系统介绍这是之前写的关于MAX31865测温相关的文章,本次在此基础上又实现了一些新功能。总结——STM32F103C8T6通过MAX31865读取PT100电阻值STM32控制max31865,利用pt100测温度,利用0.96OLED液晶显示屏显示温度值。温度过高控制风扇开启,温度过低控制加热膜加热。后续需要增加温度过高或过低蜂鸣器响且液晶有提示报警类型。系统组成STM32F103C8T6小系统板单片机核心板STM32开发板学习板实验板(升级版)MAX31865RTD铂电阻温度检测器

    2022年6月16日
  • dos的批量copy命令

    dos的批量copy命令1、主要是有需求,采取百度的,发现挺好的,还是帮作者推广一下。来自https://www.cnblogs.com/xiykj/archive/2004/01/13/13299548.html“Dos命令复制所有目录下同类型文件”2、需求:想拷贝文件夹内部的同类型文件(比如*.jpg),但是这个jpg文件在不同的文件夹下面,因此copy起来还是不方便,因此需要寻求命令代码解决3、命令是:for/r%iin(.jpg)*docopy“%i”/yd:\img其中,加粗的是变成自己需

    2022年7月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号