ITPub博客

chmod 755 究竟是什么鬼?

原创 Linux操作系统 作者:58沈剑 时间:2018-10-08 11:47:04 0 删除 编辑

有个校招的同事问我:

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

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

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

 

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

 

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

  • d :目录directory

  • l :符号链接link

  • s :套接字socket

  • c :字符设备char

  • p :命名管道pipe

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

 

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

  • 读( r ead):显示内容

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

  • 执行(e x ecute):执行文件

 

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

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

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

  • 其他( o ther)用户权限

 

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


例如,上述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位八进制数:

  • 第一位表示创建者权限

  • 第二位表示组用户权限

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

 

更具体的:

4 00:创建者可读

2 00:创建者可写

1 00:创建者可执行

4 0:组用户可读

2 0:组用户可写

1 0:组用户可执行

00 4 :其他用户可读

00 2 :其他用户可写

00 1 :其他用户可执行

 

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

有意思么?

【本文为ITPUB特邀作者“58沈剑”原创稿件,转载请联系原作者】

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31556838/viewspace-2215548/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
58速运CTO,互联网架构技术专家,“架构师之路”公众号作者。曾任百度高级工程师,58同城技术委员会主席,高级架构师,58到家技术委员会主席,高级技术总监,目前主要负责58速运技术部。

注册时间:2018-09-30

  • 博文量
    9
  • 访问量
    3702