赞
踩
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
当我们在根目录终端执行ls -al命令查看文件列表,以下为其中的文件和目录:
lrwxrwxrwx 1 root root 7 11月 30 19:56 bin -> usr/bin
drwxr-xr-x 4 root root 4096 11月 30 20:24 boot
-rw------- 1 root root 968110080 11月 30 19:56 swapfile
其中包含的信息有第一列的文件类型和权限、第三列属主、第四列属组和最后一列的文件(目录)名。
如上面的列表,第一列包含的信息有文件类型和权限,如drwxr-xr-x
,第一个字符表示文件类型,不同的字符代表不同的类型:
当为[ d ]
则是目录
当为[ - ]
则是文件;
若是[ l ]
则表示为链接文档(link file);
若是[ b ]
则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]
则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
Linux系统中的文件可以针对不同的用户设定不同的权限,如属主权限、属组权限、其他用户权限。而每个权限由[rwx]
参数组成,[ r ]
代表可读(read)、[ w ]
代表可写(write)、[ x ]
代表可执行(execute),如果此项无权限则使用[ - ]
表示,例如[-xr]
表示不可写、可读、可执行。
以[drwxr-xr-x]权限为例分解如下:
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
0 | 123 | 456 | 789 |
d | rwx | r-x | r-x |
每个文件的属性由10个字符组成,第一位是文件类型,如上表对应位置以此类推。
Linux中每个文件都有它的拥有者,也就是对该文件具有所有权的用户,这就是文件的属主。Linux用户是按组来分类的,因此一个用户属于一个或多个组,这就是属组。属组权限就是所有者对该文件的权限,属组权限就是同组用户对该文件的权限,其他用户权限就是不是所有者也不是同组用户对该文件的权限。
对于 root 用户来说,一般情况下,文件的权限对其不起作用。
chgrp [-R] 属组名文件名
参数-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
示例:
#修改install.log属主为admin
chown admin install.log
#修改install.log属主为root,属组为root
chown root:root install.log
Linux文件属性有两种设置方法,一种是数字,一种是符号。Linux文件的基本权限就有9个,分别是owner/group/others
三种身份各有自己的read/write/execute
权限,每个权限都有对应的数字。r=4,w=2,x=1
,在设置权限时我们可以使用字符也可以使用数字,而数字只需要输入权限对应数字相加的和即可。
更改权限的命令为chmod:
chmod [-R] xyz 文件或目录
选项与参数:
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同此目录下的所有文件都会变更
数字权限
每一项权限都有对应的数值:
r | w | x |
---|---|---|
4 | 2 | 1 |
赋权限时,只需要将权限的数值相加即可,例如权限为rwx,那么数值就是4+2+1=7,而三个目标对象权限全部为rwx的话,就是777。
示例:
chmod 777 new.txt
字符权限
三个目标身份user、group、others都有三个权限,共9个权限,那么命令行中通过首字母u, g, o来代表三种身份,a代表所有身份。修改权限时使用加减等于来设置权限,例如设置属主权限rwx为u=rwx,属组取消执行权限g-x,其他用户添加可写权限o+w,取消所有身份的可读权限a-r。
示例:
chmod 777 new.txt
chmod u=rwx,g-r,o+w new.txt
chmod a-w new.txt
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。