Linux的文件和目录权限
Linux支持多人同时登录系统处理,每个登录用户都会创建一个shell进程.shell进程的id是唯一的,除了linux核心模块其他文件是可以实现同时操作的.
支撑多人同时对系统进行操作的基础,的是Linux安全的文件权限设计.
在Linux上任何东西都是文件,而文件的权限从使用者分为:own
、group
、other
.从行为分为:r
、w
、x
.
而文件类型常见的分为:-
、d
、l
拥有者(own)、群组(group)、other
一个Linux文件,它将用户分成了三类.拥有它的人(own),它所属群组的用户(group),其他陌生人(other).
群组里面都是放着具体的用户,同一个群组的用户拥有的权限是一样的.
一个用户可以属于多个群组,也可以单独属于一个群组.
Linux世界中有个超级用户(root),它就像Linux世界的神,无所不能.
一个公司约少人拥有root账户,约安全.针对不同的开发需求,应该创建有限的权限用户和群组给开发使用.
文件和目录属性和权限
在Linux中用查看当前目录信息最常用的命令是 :ls -al
.这个命令会显示目录下所有文件和目录即使是隐藏的.
如上图,展示一个文件或目录的基础信息.它属于谁(4,5),不同的用户对文件或目录拥有的权限是什么(1).
具体对照如:
文档权限部分代表含义如下:
权限
部分第一个字符代表该文件的类型,一个文件常见的类型有:
-
表示文件d
表示目录l
表示链接b
表示为装置文件里面的可供储存的接口设备(可随机存取装置)c
表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
后面的字符串,三个字符一组.字符顺序是固定的[rwx].r
表示可读权限,w
表示可写权限,x
表示可执行权限.这个三个权限位置是固定的.字符上如果是-
表示该用户类型没有该权限.
文件权限类型是用三个一组的字符表示,而一共有三组权限.它们分别表示:文件拥有者权限
,所属群组权限
,其他用户权限
.
1 | [-][rwx][r-x][r--] |
##修改文件和目录的属性和权限
Linux中文件权限修改指令有:
chgrp
:改变文件所属群组chown
:改变文件拥有者chmod
:改变文件的权限, SUID, SGID, SBIT等等的特性
chgrp
修改文件所属的群组
1 | [root@www ~]# chgrp [-R] dirname/filename ... |
chown
改变某个文件或目录的所有者和所属的组
1 | [root@www ~]# chown [-R] 账号名称 文件或目录 |
chmod
用来变更文件或目录的权限
数字类型
Linux为每个权限类型设定了数值.
r
: 4w
: 2x
: 1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
1 | owner = rwx = 4+2+1 = 7 OR rw- = 4+2 = 6 |
命令格式: chmod xxx filename
1 | [root@www ~]# chmod [-R] xyz 文件或目录 |
符号类型
chmod命令中可以通过 u
,g
,o
分别指定 拥有者
,群主
,其他人
,还可以通过a
指定三种用户类型.
可以通过算数符号+
,-
,=
给用户类型设定权限.
1 | [root@www ~]chmod u=rwx,go=rx .bashrc |
参考
http://cn.linux.vbird.org/linux_basic/0210filepermission.php
作者: Fynn
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可