接触一个操作系统,首要关心的就是什么样的用户有怎样的文件操作权限。这个问题解决了,你使用这个系统就没那么多困扰了。
操写权限就是读(Read)、写(Write)、执行(eXecute),对于文件而言,RWX意义如下表所示。
权限 | 意义 |
---|---|
R | 可以通过ls看到文件名,但要用cat命令看到文件内容还需要X权限。 |
W | 可以修改文件中内容并保存。 |
X | 一般文件可以看内容,如果是可执行文件,便可以执行该文件功能。 |
对于目录(文件夹)而言,RWX意义如下表所示。
权限 | 意义 |
---|---|
R | 可以看到目录名,可以用ls列表出目录中的内容,但要用cd进入目录得需要X权限。 |
W | 可以在目录中进行添加、删除文件或子目录的操作。 |
X | 可以用cd进入目录。 |
那么linux下,如何将某个目录或文件的RWX配置给用户呢?
linux对RWX的分配是分三类用户分别考虑的,如下表。
用户种类 | 意义 |
---|---|
单用户 | 给单个用户指配权限。 |
用户组 | 给属于某个用户组的用户们指配权限。[注:一个用户必属于一个或多个用户组] |
其它 | 给不符合以上两行描述的用户们指配权限。 |
通过上表得知,一个文件或目录肯定要有关联的那三类用户,下面的指令用于为一个目录或文件关联那三类用户。
chown -R 单用户:用户组 文件或目录
其中-R为可选项,表明将目录中的所有文件、子目录权限都如此设定,如果没这个需求,可以不要-R。
比如要将目录/var/tmp及其子目录、文件都关联给userA和groupA,就这样写。
chown -R userA:groupA /var/tmp
OK,这只是把用户和文件、目录关联上了,还没确定用户究竟有什么权限能做什么操作呢。下面的命令是做这个活儿的。
chmod -R ??? 文件或目录
其中???是关键,这是个三位权限码,左边代表给单个用户的权限,中间是给用户组的权限,右边是给其他用户的权限。每一位的使用模式都是一样的,如下所术:
系统已约定好R=4,W=2,X=1,那么各种权限的组合就是这些值相加,如下表
权限组合 | 值 | 计算方法 |
---|---|---|
无任何权限 | 0 | 0+0+0 |
R | 4 | 4+0+0 |
W | 2 | 0+2+0 |
X | 1 | 0+0+1 |
RW | 6 | 4+2+0 |
RX | 5 | 4+0+1 |
WX | 3 | 0+2+1 |
RWX | 7 | 4+2+1 |
继续上面的例子,如果要userA拥有RW权限,groupA拥有WX权限,其它用户仅有R权限,可以这样写。
chmod -R 634 /var/tmp
这就是我所理解的linux的用户、用户组与文件操作权限,如有异议,欢迎交流。