0.linux中的权限分组
linux中权限由10位字母组成,就是下图中标注出的权限部分(-代表没有取得该权限)
大家进入linux后输入命令ls -al即可查看到如下内容
在linux中权限中,每个用户属于一个权限组,其中包括几个概念即:文件所有者、所在组、其他组。
- 文件所有者:一般来说可以简单的理解为文件创建者,但是创建后可以通过chown(change owner)命令来更改文件的所有者
- 所在组:文件创建时所在组为创建者所在组,后期可通过chgrp(change group)命令来修改文件所在组
- 其他组:除文件所在组以外的组称为其他组
1.具体权限介绍
linux权限的10位字母具体可以分为4段:
- 第一段:表示文件是否为目录,若为目录第一个字母则为d,否则为-
- 第二段:表示文件所有者权限,第一个r(read)表示为读权限,第二个w(write)表示为写权限,第三个x(execute)表示为可执行权限,若没有某个权限则权限出用-代替
- 第三段:表示文件所在组权限,具体rwx的含义同上
- 第四段:表示其他用户组权限,具体rwx的含义同上
2.权限的修改
其实linux中对于权限的修改十分简单,大家可以将权限理解为二进制的对应关系(每段rwx为一组),例如你想给一个文件读权限,而不给写权限和可执行权限,那么对应的就是100(二进制),也就是4,同理如果给rwx权限那么就是7。
那么我们如果想要给一个文件test.sh文件赋予rwxr-xr-x权限那么我们就应该执行chmod 755 test.sh
命令,其中第一个7对应了文件所有者所持有的权限,第二个5对应了文件所在组的权限,第三个5对应了其他用户的权限。
但是!!!如果你想要更直观的看出给一个文件的具体权限可以使用下面的命令chmod u=rwx,g=rx,o=rx test.sh
即可给予test.sh和上面一样的权限,其中u代表文件所有者权限,g代表文件所在组权限,o代表其他用户权限
chmod u-x,g+w,o+w test.sh
该命令表示对该文件去除文件所有者的执行权限,加上文件所在组和其他用户的写权限,以上两条命令可以更加直观的看出我们具体对文件权限做出了哪些修改。