文件权限问题汇总-Linux/Unix系统文件权限解析

时间:2021-11-30 15:25:47
使用命令ls -l或者ll时,会出现以下结果:

文件属性   文件个数  所属用户 所属组   文件大小   文件日期    文件名
drwxrwxr-x   2        userA    groupA   4096     Apr 11 2017  testDir
-rw-rw-r--    1         userA    gorupA    72       Apr 11 15:00  testFile

一、文件属性

  d/l/-                                                                 rwx          rwx        r-x
  d代表目录,l代表连接文件,-代表文件       拥有者权限   组权限      其它用户权限

  第1个字符代表是否可读,r代表是,-代表否;
  第2个字符代表是否可写,w代表是,-代表否;
  第3个字符代表是否可执行,x代表是,-代表否。
  用数字表达,r代表4,w代表2,x代表1,加起来就是7,0-7之内的不同数字代表不同的含义,如0表示没有任何权限,5表示4+1,就是r-x,这也是大多数目录对其他用户的权限。

二、改变文件权限(简单讲解):

      chmod [-R]... MODE[,MODE] ... FILE...
      chmod [-R]... OCTAL-MODE FILE...

注:只有文件所有者或者root才能执行这个命令。

-R:作用于所有子文件(子目录)

MODE格式:[ugoa]*[+-=]([rwxXst]*|[ugo]))+

u:拥有者权限。
g:组权限。
o:其它用户权限。
a:ugo,所有用户权限。

r:读权限。
w:写权限。
x:执行权限。

例子:

1、mkdir testDir

drwxrwxr-x   2   userA    groupA   4096   Apr 11 15:00  testDir

默认权限为775,默认拥有者为当前用户,默认组为当前用户所属的组。

2、echo "test" > testDir/testFile

-rw-rw-r--   1   userA    groupA   5   Apr 11 15:00  testFile

3、chmod ugo-rwx testDir或者chmod a-rwx testDir或者chmod 000 testDir

d---------   2   userA    groupA   4096   Apr 11 15:00  testDir

4、chmod ugo+rwx testDir或者chmod a+rwx testDir或者chmod 777 testDir

drwxrwxrwx   2   userA    groupA   4096   Apr 11 15:00  testDir

5、chmod u+rw,g-w,o-x testDir或者chmod 756 testDir

drwxr-xrw-   2   userA    groupA   4096   Apr 11 15:00  testDir

6、chmod +w testDir(默认不会给其他用户启用或者禁用w的权限)

drwxrwxrw-   2   userA    groupA   4096   Apr 11 15:00  testDir

三、rwx权限具体的作用:

1、目录:

r权限:控制访问和删除。去掉r权限,可以cd到该目录,只能操作子文件。

如ls -a testDir 报Permission denied错误,rm -fr testDir报Permission denied错误。
ls -a testDir/testFile正常,cat testDir/testFile正常。子文件和子目录可以随意操作。

 w权限:控制新建和删除子文件和子目录,不影响子目录内的目录和文件。

 x权限:除了删除当前目录(如果有子文件或者子目录则不能删除),控制任何操作(cd/ll/cat/rm)(包括子目录和子文件,以及子目录里面的所有操作)。

2、文件:

 r权限:控制读取(cat/vi)。
 w权限:控制编辑。
 x权限:控制执行(./)。

四、所属用户/所属组更改

注:只有root用户才能执行这个命令。

chown 所属用户:所属组 目录名/文件名
chown 所属用户 目录名/文件名

-R:作用于所有子文件(子目录)