Linux – 文件类型和权限

时间:2022-07-27 16:43:20

参考鸟哥的Linux私房菜

 

Linux是一个多人多任务的环境,为了让每个使用者具有较安全的管理机制,文件的权限管理非常重要。

Linux一般按照所针对的用户,将文件的权限分为三类:

Owner,创建该文件的用户。

Group,拥有该文件的用户组中的任何用户。

Other, 不属于拥有该文件的用户组的某一用户。

按照访问方式,可以划分为以下三种:

Read,可以显示该文件的内容。

Write,可以编辑或删除它。

Execute,如果该文件是一个shell脚本或者程序。

 

群组

先来简单说一下群组这个概念(本图来自鸟哥的私房菜)

Linux – 文件类型和权限

如果王大毛创建了一个文件,这个文件的owner为王大毛,它的group为王大毛家这个群组,即王二毛王三毛都属于group这个属位。张小猪则是属于others这个属位。这里的天神就是我们伟大的root了,root无所不能。

 

文件的属性

我们先用一下ls –al命令看一下文件的具体内容

 Linux – 文件类型和权限

ls 是[list]的意思,类似于DOS里的dir。

 

上面七个字段的具体意思如下:

Linux – 文件类型和权限

第一个属性表示了文件的类型和权限属性:

 Linux – 文件类型和权限

文件类型

文件权限位之前的字符表示文件的类型,文件类型一共有七种。

d 目录

l 符号链接(指向另一个文件)

s 套接字文件

b 块设备文件

c 字符设备文件

p 命名管道文件

-         普通文件,不属于以上类型的文件

 

改变所属群组

chgrp

chgrp group dirname/filename….

例如想把文件install.log的群组改为user群组

chgrp user install.log


 

改变文件拥有者

chown

chown –R –h owner file

例如,想把文件project的owner改为pauline:

chown Pauline project


修改权限

chmod

chmod [who] operator [permission] filename

 

who:

u 文件属主

g 同组用户权限

o 其他用户

a 所有用户

operator:

+ 增加权限

– 取消权限

= 设定权限

permission:

r 读

w 写

x 执行

s 文件属主和组set-Id

t 粘性位*  

l 给文件加锁,使其他用户无法访问

u,g,o 针对文件属主,同组用户及其他用户的操作

 

如果要对文件权限进行更新,可以参考:

 Linux – 文件类型和权限

比如对文件bashrc进行权限配置

chmod u=rwx,go=rx bashrc 
除了以上这种方式之外,对大多数人来说第一次接触的应该是类似于 chmod  777  filename 这种格式,我们把这种格式称为绝对模式。

一般形式为: chmod [mode] filename

 Linux – 文件类型和权限

每个权限位可以用一个八进制数来表示:

r->4

w->2

x->1

如果我们想将属性变为[-rwxr-xxr--]那么可以进行计算[4+2+1][4+0+1][4+0+0]=754,是不是简单易记呢。