(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)用户权限

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

例如,上述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。

最新文章

  1. 【Java每日一题】20170104
  2. C# double 四舍五入
  3. 苹果内付费 IAP
  4. codeforces 468B 2-sat
  5. jQuery 小知识点(插件)
  6. Matlab中用内建函数代替for循环
  7. sqlserver 只有函数和扩展存储过程才能从函数内部执行
  8. 安装CocoaPods流程及常见问题(Xcode->homebrew->RVM->Ruby->CocoaPods)
  9. Java 8 Lambda 表达式
  10. Logcat monkey命令
  11. 【记录】Xmind8 Pro 激活
  12. Linux 查看磁盘读写速度IO使用情况
  13. html对a标签的运用以及属性,img图像标签的属性及应用
  14. python消息队列Queue
  15. [HAOI2010]订货 BZOJ2424
  16. 功能WBS分解
  17. 监听Sms.Content_URI而不是Sms.Inbox.CONTENT_URI
  18. css样式表--样式表分类
  19. python关键的语法
  20. openstack neutron 简单理解

热门文章

  1. informix 随笔
  2. No matching authentication protocol
  3. 1.使用脚本控制模型的移动 --《Unity 3D 游戏开发》笔记
  4. 交换排序-C#实现
  5. c#实现识别图片上的验证码数字
  6. C++中的内部类
  7. Docker系列(一)CentOS 6.5 离线安装、不升级内核
  8. php使用select语句查询数据信息
  9. mpt2sas0: log_info(0x31120100): originator(PL), code(0x12), sub_code(0x0100)及同类问题的追踪
  10. 采用Anaconda平台调用pymc3时出现错误的解决方法