在Linux系统下变更文件权限,首先必须了解Linux文件和目录的权限有哪些。Linux文件的权限分为三种,分别是读(r)、写(w)、执行(x),当我们在shell下输入ls
-al指令的时候,系统会打印出该系统的所有文件及目录,例如:
其中每一行的第一个字母代表了该文件是目录(windows下的文件夹)还是文件,d则代表前者,-则代表后者,而在这个字母之后的9个字符则分别代表着该文件相对应于文件拥有者、文件群组及其他用户对该文件的权限,
r
表示文件可以被读,w
表示文件可以被写,x
表示文件可以被执行,-
表示相应的权限还没有被授予,至于文件拥有者及文件群组的知识在这里不做概述。而图中每一行的第一个bigben代表了该文件的拥有者,第二个bigben则代表了该文件的所属群组。
而变更文件权限一共有三条指令,分别是chgrp(修改文件的所属群组)、chown(修改文件的拥有者)、chmod(修改文件的权限属性)。
下面是三个指令的例子:
chgrp bigben(群组名,该群组名必须存在于/etc/group) .lesshst
chown bigben(文件拥有者) .lesshst
而chmod有两种表示形式(符号类型和数字类型)
符号类型:
u代表文件拥有者的权限、g代表文件所属群组的权限、o代表其他用户的权限,值得注意的是=代表了只能选择rwx其中一项权限。
chmod go+r .lesshst
数字类型:
chmod 644 .lesshst
这三个数字分别代表ugo的文件权限,其中r(4)w(2)x(1),每个数字分别为该这三个权限的值叠加,所以这条指令
与chmod go+r .lesshst效果相同