第一步:认识文件权限说明
使用Linux的同学都知道,在Linux下列出当前目录下的文件和子目录的命令是 ls, 同时 ls 又有许多参数,我们现在要查看文件的类型和权限使用ls -al.
-r-xr-xr-x 这个字符串我们需要分成两部分来看,第一部分是第一个字符,代表文件的类型;
linux下文件的类型通常有以下几类:
d : 代表一个目录;
- : 代表一个普通文件;
l : 代表一个普通文件;
b : 代表设备文件里面的可供存储的接口设备;
c : 代表设备文件里的串行端口设备;
比较常见的就是前三种文件类型,那么此时我们知道了test 是一个普通文件;
那么-r-xr-xr-x 剩余的那部分有代表了什么意思呢?代表了文件的权限;
我们可以又将 r-x r-x r-x 分为三部分来看,三个字符一组;
前三个字符代表的是文件的属主(文件的拥有者)的权限:Owner ;
中间三个字符代表文件的属组的同组其它用户的权限: Group;
最后三个字符就代表剩余的其它用户的权限:Others;
r : 代表可读权限,即可以读取文件内容;
w : 代表可修改权限,即可以对文件进行增删查改;
x : 代表文件可执行权限,对于目录又有不同的含义,后面说明;
- : 代表缺省;
那么此时我们就可以了解到 test 文件的权限为,test的属主对它拥有可读可执行权限,test的属组的其它同组用户对它拥有可读可执行权限,而剩余的其它用户对test的权限也是可读可执行;
Linux对文件的权限的表示,一般情况下都是采用我们前面所看到的字符的表示方法,三个字符一组,分别表示文件的属主,属组和其它用户;
第二种方式即将字符对应为二进制的01,同样三个三个一组,为了方便起见,又将三个一组的01转化为8进制表示,这样就可以用3个数字表示文件的权限了;
例如:
字符表示 : -rwx r-x --x
二进制表示: 111 101 001
八进制表示 : 7 5 1
- 1
- 2
- 3
- 4
对于字符到二进制之间的转化关系很简单,即有对应位上有权限即为1 ,没有即为0; 而二进制到八进制的转换就更加简单了,即按照三个二进制向十进制的转换就可以,因为8以下的表示八进制和十进制是一样的;
第二步:使用【chmod】命令改变文件或目录的访问权限
第三步:更改文件的所有者以及所属组
chown 更强的的一点是它可以顺手把属组也改变掉,这样当你希望即改变文件的属主又改变文件的属组的话,就可以执行一条命令了;
第四步:认识umask
第五步:识别特殊权限
第六步:识别文件颜色
颜色不一样,文件的类型也不同。
浅蓝色:表示链接的文件;
灰色:表示其它文件;
绿色:表示可执行文件;
红色:表示压缩文件;
蓝色:表示目录;
红色闪烁:表示链接的文件有问题了;
黄色:表示设备文件,包括block、char、fifo。
第七步:总结常用的几个命令
CentOS中常用的有关权限的几个命令以及释义如下,熟悉他们会让你的运维会事半功倍。
【chmod u+x,g-x,o=x test】 所有者加上执行权限,组成员减少执行权限,其他成员设置为执行权限。
【chmod –R 766 ./】修改当前目录权限,要求里面的所有文件和文件夹的权限修改为766。
【chown user1:G3 zip.zip】修改zip.zip的所有者为user1,所有组为G3。
【umask】查看当前umask参数。
【ll /home/dir1】显示目录dir1的详细信息,记录目录的权限信息。
【umask 066】改变umask参数为066。
【chmod g+w /home/dir1】为dir1的同组用户增加写权限。
【chmod 755 /home/dir1】改变file1的文件权限为755。