Linux-(11)权限
Linux-(11)权限
权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读、写和执行。操作系统中每个文件都拥有特定的权限、所属用户和所属组。通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
Linux中的每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限是一样的。
在Linux中文件的普通权限有三中,分别是:r(读)、w(写)、x(执行)
r(读):可以读取文件的内容;可以列出目录的内容
w(写):可以修改文件的内容;可以在目录中创建、删除文件
x(执行):文件可以执行;可以访问目录中的内容
这里有一点需要注意,目录必须拥有x(执行)权限,否则无法进入目录。
看下面这个文件夹,没有x权限
drw-r--r-- 3 lhc lhc 4096 4月 26 17:11 001/使用cd命令,无法进入
lhc@lhc-virtual-machine:~/Documents$ cd 001 -su: cd: 001: Permission denied lhc@lhc-virtual-machine:~/Documents$
权限的控制:
Linux权限基于UGO模型进行控制,U(User)、G(Group)、O(Other),权限3个一组(rwx),分别对UGO进行设置。文件的所属用户对应U权限,所属组对应G权限,其他用户和组对应O权限
通过ls -l查看目录下的文件,一般是这样的:
drwxr-xr-x 3 lhc lhc 4096 4月 26 17:11 001/第一个字母d:表示文件类型 (d:文件夹、-:普通文件、l:链接)
接下来的rwxr-xr-x表示的就是UGO权限,前三个字母rwx代表U的权限,中间三个r-x代表G的权限,最后的r-x代表O的权限,“-”表示没有某一种权限。
针对这个就是所有者拥有读写执行权限,所属组拥有读和执行权限,其他用户拥有读和执行权限
权限后面的数字表示链接数,其后是所属用户,所属组,再后面是大小,时间,文件名
合起来就是:
类型UGO权限 链接数 用户 组 大小 时间 文件名
修改文件所属用户、组:
修改文件所属用户:
chown <用户> <文件>
参数:
-R 递归修改目录下的所有文件
修改文件所属组:
chgrp <组> <文件>
参数:
-R 递归修改目录下的所有文件
修改文件权限:
chmod <模式> <文件>
模式的表示方法如下:
u,g,o分别代表用户,组和其他,a可以代表所有
+,-代表加入或删除对应权限
r,w,x代表三种权限
例子:
chmod u+w file 给文件的所属用户增加写权限
chmod g-x file 去除文件的所属组的执行权限
chmod go+r file 给文件的所属组和其他用户增加读权限
chmod a-x file 去除所有用户的执行权限
chmod命令也支持以数字方式修改权限,三种权限分别由3个数字表示
r=4 (2的2次方)
w=2 (2的一次方)
x=1 (2的0次方)
使用数字表示权限权限的话,每一类用户的权限分别对应数字之和,即:
rw=4+2=6
rwx=4+2+1=7
rx=4+1=5
例如:
chmod 660 file 这个执行完后,文件的权限就变成rw-rw----
默认权限:
在Linux中使用umask来确定新建文件,目录的默认权限.每一个终端都拥有一个umask属性
umask通常是使用数字权限来表示的,通常,普通用户的umask是002,而root用户的默认权限是022.
文件的默认权限就是666-umask,目录的默认权限是777-umask
所以,对于普通用户,新建文件的权限是666-002=664,新建目录的权限是777-002=775
umask值的查看和修改都是通过umask命令
直接输入umask命令是查看, umask <数字>是修改.
Linux的普通权限基本就是这么多内容了,下次再写Linux的特殊权限
评论暂时关闭