参考鸟哥的Linux私房菜
Linux是一个多人多任务的环境,为了让每个使用者具有较安全的管理机制,文件的权限管理非常重要。
Linux一般按照所针对的用户,将文件的权限分为三类:
Owner,创建该文件的用户。
Group,拥有该文件的用户组中的任何用户。
Other, 不属于拥有该文件的用户组的某一用户。
按照访问方式,可以划分为以下三种:
Read,可以显示该文件的内容。
Write,可以编辑或删除它。
Execute,如果该文件是一个shell脚本或者程序。
群组
先来简单说一下群组这个概念(本图来自鸟哥的私房菜)
如果王大毛创建了一个文件,这个文件的owner为王大毛,它的group为王大毛家这个群组,即王二毛王三毛都属于group这个属位。张小猪则是属于others这个属位。这里的天神就是我们伟大的root了,root无所不能。
文件的属性
我们先用一下ls –al命令看一下文件的具体内容
ls 是[list]的意思,类似于DOS里的dir。
上面七个字段的具体意思如下:
第一个属性表示了文件的类型和权限属性:
文件类型
文件权限位之前的字符表示文件的类型,文件类型一共有七种。
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 针对文件属主,同组用户及其他用户的操作
如果要对文件权限进行更新,可以参考:
比如对文件bashrc进行权限配置
chmod u=rwx,go=rx bashrc除了以上这种方式之外,对大多数人来说第一次接触的应该是类似于 chmod 777 filename 这种格式,我们把这种格式称为绝对模式。
一般形式为: chmod [mode] filename
每个权限位可以用一个八进制数来表示:
r->4
w->2
x->1
如果我们想将属性变为[-rwxr-xxr--]那么可以进行计算[4+2+1][4+0+1][4+0+0]=754,是不是简单易记呢。