在Linux中,文件权限划分的很细致(这里的权限主要指的是文件对于用户的权限,也就是能对文件所作操作的控制)主要对用户划分,划分为不同的用户组,用户可以属于不同的用户组也可以属于多个用户组。Linux 划分成这种细致的权限是因为Linux是一个多用户操作的分时系统,想象一下有多个团队在操作同一个linux主机,每个团对肯定有相互隐私的文件,所以文件要设置权限,对文件权限有多种不一样的划分,有的文件可以同一个团队共享某个权限,有的文件可以所有人共享,有的只能特定于某一个用户贡献。 注意:linux 中root 用户就是天神,任何权限都有(用户都给删掉)
当使用 ls -al 命令时可以看到一个文件对应的权限
d r w x - r x - - x
d代表文件类型 这里代表目录
剩下的从左往右每三个代表一类用户的权限:2-4代表文件拥有者的权限,5-7代表文件所属用户组的权限,8-0代表其他用户组的权限
下面讲几个关于修改文件权限相关的linux命令:
chgrp (change group)修改文件用户组
chown(change owner)修改文件所属拥有者
chmod (修改文件权限)也就是修改文件能读,运行,写等
1.chgrp [-R] dirname/filename -R指持续变更,也就是当前目录下所有的目录文件都可以更新为这个群组
2.chown [-R] username filename Or chown [-R] useraname:groupname filename
意思和chgrp相似,只不过有可能一个群组出现相同用户名,所以有时候要用groupname区分
注意:cp 命令在复制文件的时候,也会将文件的所有权限属性复制
3. chmod 命令用于修改文件的权限(主要用于修改文件读写运行的权限)
代表的意思:
r-read w-write x-execute
这里 r w x 三个在linux权限中分别代表三种不同的分数
r:4
w:2
x:1
没有权限:0
给三种角色:分配权限的时候可以按照分数总和分配,linux会按照分数总和区别不同的权限
例如:rwx:7 wx:3 rw:6
chmod [-R] xyz(这里xyz代表上面提到的权限) filename
1个例子:chmod 777 abc.txt
2个例子:chmod u=rwx,go=rx abc.txt
u代表user g代表group o 代表others
3个例子: chmod a+w abc.txt 每种角色都加w权限
目录也有 rwx的权限定义: 目录的r代表能否看到目录名,w代表能否增删目录里面的文件,x代表能否进入目录,如果目录里面有一个文件 当前用户没有对该文件的任何权限,但是当前用户有哪个文件目录的权限,则可以删除这个文件,但是不能修改文件里面的内容或者查看内容。