Linux学习第七篇之权限管理命令chmod、chown、chgrp、umask

时间:2022-05-04 16:42:34

  我们知道,Linux中的文件的用户属性有一下三类:所有者(u)、所属组(g)、其他人(o),每一类都可以对应一组文件处理权限:读(r)、写(w)和执行(x)。因此, 可以通过权限管理命令来更改文件的用户属性以及对应的处理权限。

一、chmod命令:

  命令名称:chmod

  命令英文原意:change the permissions mode of a file

  命令所在路径:/bin/chmod

  执行权限:文件的所有者和root用户

  语法:1、 chmod [{ugoa}{+-=}{rwx}] [文件或目录]  其中a表示所有用户,+:增加某个权限,-:减少某个权限,=:不管原来是什么权限,要改成新的权限(有点像赋值)

      例:chmod -u+r,-o-w /home/aaa

     2、chmod [mod=42] [文件或目录],其中,mod是权值,r=4,w=2,x=1,那么rwxrwr--,的权值应该为:764,那么例子应该为:chmod 764 aaa,这里也可以用二进制理解,rwxrw-r--对应的二进制为111110100,对应的权值也为764

     3、chmod -R [权值] [目录] 修改目录下的所有目录及文件的权限

  功能描述:改变文件或目录权限

 

二、文件和目录的权限说明:

代表字符 权限 对文件的含义 对目录的含义
r 读权限:cat\tac\less\more\tail 可查看文件内容 可以列出目录的内容:ls
w 写权限:vim 可以修改文件内容 可以在目录中创建、删除文件:mkdir\rmdir\rm\touch
x 执行权限:脚本或命令等可执行文件 可以执行文件 可以进入目录:cd

      从上表中可以看出,用户是否可以删除一个文件,不是该文件的写权限决定的,而是该文件所在的目录的写权限决定的,即删除一个文件的前提条件是对这个文件所在的目录有写权限。

 

三、其他权限管理命令

  1、chown

    命令名称:chown

    命令英文原意:change file ownership

    命令所在路径:/bin/chown

    执行权限:所有用户都可以使用这个命令,但是只有管理员root用户可以成功修改

    语法:chown [用户] [文件或目录]

    功能描述:改变文件或目录的所有者

    例子:chown user_login file.txt   将文件file.txt的所有者更改为user_login,并且user_login必须为一个系统中已经存在的用户(注:root用户使用useradd命令可以增加一名用户)

  2、chgrp

    命令名称:chgrp

    命令英文原意:change file group ownership

    命令所在路径:/bin/chgrp

    执行权限:所有用户

    语法:chgrp [用户组] [文件或目录]

    功能描述:改变文件或目录的所属组

    例子:chgrp users file.txt,将文件file.txt的所属组更改为users,并且users必须为一个系统中已经存在的用户组(注:root用户使用groupadd命令可以增加一个用户组)

  3、umask

    命令名称:umask

    命令英文原意:the user file-creation mask

    命令所在路径:shell内置命令

    执行权限:所有用户

    语法:umask [-S]  -S以rwx形式显示新建文件的缺省权限

    功能描述:显示、设置文件的缺省权限

    例子:umask -S,对于目录来说,一般是rwxr-xr-x;对于文件来说,一般是rw-r--r--,这是因为x对于目录来说是进入这个目录,而文件默认的都是非可执行文件。

    注意:1、不带S选项时,会出现数字0022,第一个0是指特殊权限,022,这个需要与文件权限的权值777进行逻辑异或操作,得到755,也就是rwxr-xr-x(如果是文件,那么默认都是没有可执行权限的)

       2、如果需要将默认的缺省值改为711,那么就将711(rwx--x--x)与777做异或运算,得到066,那么执行的命令为:umask 066