一、命令 chmod 使用
例子:
ls -l son.cpp
-rw-rw-r-- 1 songbw songbw 89 12-15 11:43 son.cpp
第一个songbw 表示,文件son.cpp 的属主是songbw,形象理解为,son.cpp 的主人是songbw
第二个songbw 表示,文件son.cpp 的属组是songbw,可以理解为,son.cpp 属于songbw这一组
然后解释,第一列的10位,从左到右第一位是文件的类型,这里指没有类型;
接下来三位,rw-是代表属主的权限,顺序为读、写、执行,所以属主的权限是可读、可写,理解为,在songbw用户下,可以对文件son.cpp进行读写和执行的操作或者假如有另一文件(可能是一程序),它的属主也是songbw,它就可以读写执行son.cpp;
再接下来三位 rw- 是属组的权限,表示这一组的成员可以对文件son.cpp读和写;
再接下来三位 r-- 是其它成员的权限(非组成员、非属主),表示其它成员只能对文件son.cpp 读。
那么,如何改变文件son.cpp的属主、属组和其它成员的权限呢?
1.1、使用u、 g、 o 标识符
方法1:
chmod u+x,o+w son.cpp
-rwxrw-rw- 1 songbw songbw 89 12-15 11:43
由上一条命令知,属主权限为rw-,其它成员的权限是r--。而此命令,u+x中u代表属主,就是将属主增加可执行权限,变成了rwx;o+w中o代表其它成员,就是将其他成员增加可写权限,则由原来的r-变成了rw-;
最后一项为文件名,两个命令u+x和o+w要用逗号隔开
chmod u=g son.cpp
就是将所属组的权限分配给属主:’=’也可以换成’+’或‘-’,这里面的’+’’-’用集合计算就行,因为不论是属主、所属组还是其它成员,他们的权限都是集合
1.2、通过数字赋予权限
方法2:
chmod 755 son.cpp
将son.cpp赋予755的权限,7(111)代表属主的权限,第一个5(101)代表所属组的权限,第二个5(101)代表其它用户的权限,从左到右分别代表能否读、能否写、能否可执行的意思,所以上面的7即代表属主有可读、可写、可执行的意思。
如果需要对文件夹下的文件统统修改权限,可以使用 -R 参数,如下实例:
chmod -R 755 zsh-syntax-highlighting-master
就是对目录 zsh-syntax-highlighting-master 下的文件都赋予 755 的权限
二、命令 chown 使用
如何改变文件的属主和属组呢?
切换到超级用户的情况下,可以修改文件或文件夹的属主或所属组(比如说,文件son.cpp的属主是songbw,在超级用户的情况下,我可以将他的属主改为hongxian,当然前提是hongxian这个用户必须是真实存在的)
su –
切换到超级用户权限下
chown hongxian son.cpp
将son.cpp的属主改为hongxian。前提是hongxian是真实存在的用户
chown :hongxian son.cpp
将son.cpp的所属组改为hongxian。前提hongxian是真实存在的组
其实上面2条命令可以合为一条命令即:
chown hongxian:hongxian son.cpp
冒号前的为用户,冒号后的为组。所以说超级用户的权限是很大的。
对于命令 chown,最常用的是 -R,--recursive 参数,可递归遍历子目录,把修改应用到目录下的所有文件和子目录