linux中的9个权限位

首先,我们通过linux的ls命令操作获得每个文件的权限,如下图:



表示连接的文件数

admin 表示用户

admin表示用户所在的组

5572 表示文件大小(字节)

Feb 20 11:43 表示最后修改日期

2-20 表示文件名


由上图可以看出:最左边由十个字母或者短杠组成,其中:

第一位表示Linux的文件类型:

文件的类型可以分为以下几类:

1.普通文件(regular file)第一个字符为[ - ] 

包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类 型,称为纯文本档。是因为内容为我们⼈人类可以直接读到的数据,
例如数字、字母等等。

            ②二进制文件(binary): 你的Linux中的 可执行文件(scripts, 文字型批处理文件不算)就是这种格式的。

            ③数据格式文件(data):有些程序在运作的过程当中会读取某些特 定格式的档案,那些特定格式的档案可以被称为数据⽂文件 (data file)。一般用cat看到的都是乱码。 

2.目录(directory): 第一个字符为[ d ]  

3.连接文件(link)第⼀一个字符为[ l ] 


4.设备和设备文件  

包括:块设备文件,即一些存储文件,如硬盘、软盘等,第一个字符为 [ b ] 

            字符设备文件,即一些串行端口的接口文件,如键盘、鼠标等, 第一个字符为[ c ] 

5.套接字(sockets)第一个字符为[ s ]  。还被称为数据接口文件,这种类型的文件通常被用在网络上的数 据连接。我们可以启动一个程序来监听客户端的请求,而客户端就 可以通过数据接口文件来进行数据通信。

 6.管道(FIFO,pipe)第一个字符为[ p ]  

剩余的九位可以分为三组:

三位为一组:

综上所述,可以将上述分为三组,分别是第一组:rwx或者rw-,第二组:rwx或者rw-,第三组:r-x或者r--。

在linux中,第一组称为拥有者,第二组称为所属组,第三组称为其他用户。即就是:

文件访问者的分类(人)
 a)文件和文件目录的所有者:u---User


一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者

ls ‐ahl命令可以看到文件的所有者

也可以使用chown 用户名 文件名来修改文件的所有者

     b)文件和文件目录的所有者所在的组的用户:g---Group

· 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

ls ‐ahl命令可以看到文件的所有组

也可以使用chgrp 组名 文件名来修改文件所在的组

       c)其它用户:o---Others 

除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

 

每个权限部分可选字符选项如下:

  1. r: read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  2. w:write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
  3. S:set如果在所有者权限部分,表示该文件不能被执行和设置为set-user-ID模式。如果在组权限部分,表示该文件不能被执行和设置为set-group-ID模式。
  4. s:如果该字符在所有者权限部分,表示该文件可执行和设置为set-user-ID模式。如果设置在组权限部分,表示该文件可执行和设置为set-group-ID模式。
  5. x:execute对⽂文件⽽而⾔言,具有执⾏行⽂文件的权限; 对⺫⽬目录来说,具有进⼊入⺫⽬目录的权限
  6. -:无某(读,写,执行,setuid等)权限

以下两个字符只能用在第三部分其他人权限部分:

  1. T  沾滞位设置(1000模式),但不能执行或者搜索。
  2. t  沾滞位设置(1000模式),并可以执行或搜索。(该字符较常见一般用于授予目录,作用为任何人可以在该目录中创建文件,但是该文件只有创建者可删除。见/tmp目录权限)

文件访问权限的相关设置方法
 :

a)chmod
  

功能:设置文件的访问权限
  

格式:chmod [参数] 权限文件名
 

 参数:R -> 递归修改目录文件的权限 

     V -> 显示指令执行过程、
 

             reference=<参考文件或目录>:把指定文件或目录的权限全部设成与参考文件或目录的权限相同。 

说明:只有文件的拥有者和root才可以改变文件的权限


chmod命令权限值的格式
:① 用户表示符+/-=权限字符
      

 +   向权限范围增加权限代号所表⽰示的权限
      

-     向权限范围取消权限代号所表⽰示的权限
    

=    向权限范围赋予权限代号所表⽰示的权限
    

用户符号:u     拥有者
       g     拥有者同组用户       o     其它⽤用户
       a    所有用户
    

 实例: 

$ chmod  u+x  file.c

$ chmod  o-r   file.c

$ chmod  g+x  file.c



    ②三位8进制数字

实例: 

$ chmod  157  file.c

$ chmod  346  file.c

$ chmod  732  file.c


b)chown 
 

功能:修改文件的拥有者
 

格式:chown [参数]  用户名  文件名
 

实例: chown root file.c


c)chgrp
 

功能:修改文件或目录的所属组
 

格式:chgrp    [参数]   用户组名  文件名 
 

参数:-R 递归修改文件或目录的所属组
 

实例: # chgrp root file.c



d)umask
 

功能:查看或修改文件掩码 

新建文件夹默认权限=0666-权限掩码 

新建目录默认权限=0777-权限掩码
 

格式:umask    权限值
 

说明:
    将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。
   

 超级用户默认掩码值为0022,普通用户默认为0002。
 

实例:   # umask 755

       # umask   //查看 

       # umask 044//设置
 





s位的说明: 
 
     一般来说,一个运行中的程序为运行这个程序的用户所拥有。但如果该程序是suid/guid程序,则运行的程序则为文件所有者拥有,运行中的程序在程序运行期间拥有文件所有者的全部权限。 如果一个普通用户运行了一个属于根用户的带s标志的程序,那么,该程序将不考虑用户权限,而是自动拥有在系统中读/写任何文件及目录的特权。 
    这样做,有一定的好处,但一般我们不建议采用s位,要严格设置这种权限,避免破坏性。 
t位的说明:  


   程序的t属性表示粘滞位,即告诉系统在程序完成后在内存中保存一份运行程序的备份,如该程序常用,可为系统 节省点时间,不用每次从磁盘加载到内存。由本人注明:是保存在虚拟内存中,而不是物理内存中。 

   目录的t属性,设置了目录的T属性后1000,由只有该目录的所有者及root才能删除该目录, 

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值