转载一篇写得非常详细的linux文件权限,方便自己查阅!

转载来源:https://www.cnblogs.com/keyi/p/8124841.html

-------------------------------------分割线---------------------------------------

一、Linux文件权限

每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。
利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为准。第一个字段由10个字符组成,如下:

1(-),234(rwx),567(r-x),8910(r-x)
-rwxr-xr-x
  • 第一位表示文件类型,-表示文件,d表示目录
  • 2-4位:  表示文件所有者的权限,u权限
  • 5-7位:  表示文件所有者所属组成员的权限,g权限
  • 8-10位:  表示所有者所属组之外的用户的权限,o权限
  • 2-10位:  的权限总和有时称为a权限

以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。

二、文件权限修改----chmod

  • 用数字表示法修改权限

所谓数字表示法,是指将r、w和x分别用4、2、1来代表,没有授予权限的则为0,然后把权限相加,如下:

原始权限  转换为数字 数字表示法
rwxrwxr-x (421)(421)(401) 775
rwxr-xr-x (421)(401)(401) 755

修改权限的例子:将文件test的权限修改为所有者和组成员具有读写的权限,其他人只有读权限

chmod 664 test
  • 用文本表示法修改权限

  文本表示法用4个字母表示不同的用户:

    • u:所有者
    • g:组成员
    • o:其他成员
    • a:所有人

  权限仍用r、w和x表示

和数字表示法不同,文本表示法不仅可以重新指定权限,也可以在原来权限的基础上增加或减少权限,如下:

    • =:重新制定权限
    • -:对目前的设置减少权限
    • +:对目前的设置增加权限

例子:讲上述例子中,所有者加上执行权限,组成员减少执行权限,其他成员设置为执行权限,执行以下命令:chmod u+x,g-x,o=x test
注意:逗号前后不能有空格

三、目录权限

目录权限的修改和文件权限修改不同,只是四种权限代表的含义如下:

  • r:可列出目录中的内容
  • w:可在目录中创建、删除和修改文件
  • x:可以使用cd命令切换到此目录
  • -:没有任何此目录的访问权限

注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件的权限设置为任何人都可以读写

chmod 666 /test/*

四、指定文件的默认权限掩码-----umask

权限掩码有4个八进制的数字组成,讲现有的权限减掉权限掩码后,即可产生此文件建立时的默认权限。
一般来说,新建文件的默认值是0666,新建目录的默认值是0777,如果将全线掩码设置为0002,则每个新建文件的默认权限为0666-0002=0664,而目录的默认权限则为775。可以直接输入umask命令来检查目前的默认权限掩码,或输入"umask 权限掩码"来指定默认权限掩码。
用umask的方式指定默认权限掩码,可以避免添加访问权限过大的文件或目录。

最新文章

  1. 判断 .NET Framework安装版本
  2. “全能”选手—Django 1.10文档中文版Part2
  3. 【UFLDL】Exercise: Convolutional Neural Network
  4. 联系旭日150安装CentOS5.X版本手记
  5. java基础知识回顾之---java StringBuffer,Stringbuilder与String的区别
  6. 文成小盆友python-num13 整个堡垒机
  7. Beyond Compare设置默认为ANSI格式
  8. codeforces 626E. Simple Skewness 三分
  9. Mysql授权远程登录
  10. 性能测试分享:jmeter性能监控(一)
  11. python相关资料
  12. [测试题]gene
  13. Mysql大量插入数据时SQL语句的优化
  14. Java Class Version 研究
  15. LODOP中ADD_PRINT_TABLE、HTM、HTML表格自动分页测试
  16. 备忘:移植ucos-III到stm32f103c8t6
  17. python_Tkinter
  18. 4.4基于switch语句的译码器
  19. 控制台管理apk
  20. js定位当前位置的坐标经纬度和地点名称和天气

热门文章

  1. Spring 14: Spring + MyBatis初步整合开发
  2. MyBatis快速上手与知识点总结
  3. const修饰符总结
  4. Openstack neutron:云数据中心底层网络架构
  5. Django 测试脚本
  6. nginx实现vue的web页面项目集群负载
  7. 1_MySQL
  8. Linux 宝塔部署 ASP.NET Core 应用
  9. 5N的多次方
  10. .Net下的分布式唯一ID