Linux系统下经常遇到文件或者文件夹的权限问题,或者是因为文件夹所属的用户问题而没有访问的权限。根据我自己遇到的情况,对这类问题做一个小结。
在命令行使用命令“ll”或者“ls -a”,可以查看文件或者文件的权限:
-rw-r--r--. 1 root root 6 Nov 9 16:42 a.txt
其中“-rw-r--r--”表示权限,一共有十个字符。
第一个字符,如果是“-”则表示是文件,如果是“d”则表示是目录(directory)。
后面9个字符每3个字符又作为一个组,则有3组信息(“rw-”、“r--”、“r--”),分别表示所属用户本身具有的权限、所属用户的用户组其他成员的权限、其他用户的权限。
每一组信息如“rw-”,每一个字符都有它自己的特定含义且先后位置是固定的,其中r是读权限、w是写权限、x是可执行权限、-没有对应字符的权限。Linux里面对这些字符设置对应的数值,r是4,w是2,x是1,-是0。上面的“rw-”则是6(=4+2+0),所以最开始a.txt的权限是644,属于root用户组的root用户。
一、修改权限chmod
有的时候我们需要修改文件或者目录的权限,此时我们需要用到chmod命令。
1、改文件的权限
我想修改文件a.txt的权限为755
$ chmod 755 a.txt
2、只改变文件夹本身权限,不改动子文件
$ chmod 600 myfolder
3、改变文件夹及子目录下所有文件(夹)权限
$ chmod -R 600 myfolder
二、修改所属用户和用户组chown
这个和修改文件夹的权限是基本相同的,只不过是把chmod命令换成了chown。
1、修改文件所属用户和用户组
$ chown zzx:zzxGroup a.txt #修改文件所属用户为zzx,所属用户组为zzxGroup
2、只改文件夹本身所属用户和用户组,不改子文件(夹)
$ chown zzx:zzxGroup myfolder #修改文件所属用户为zzx,所属用户组为zzxGroup
3、改变文件夹及所有子文件(夹)所属用户和用户组
递归修改文件夹myfolder及包含的所有子文件(夹)的所属用户(zzx)和用户组(zzxGroup):
$ chown -R zzx:zzxGroup myfolder #修改文件所属用户为zzx,所属用户组为zzxGroup
三、总结
修改单个文件(夹)就用命令:
chown或chmod “权限”或“名:组” 文件(夹)名称
修改文件夹及子文件夹所有文件就用命令:
chown或chmod -R “权限”或“名:组” 文件夹名称