天天看点

Linux权限管理命令之其他权限管理命令

Linux基本命令,更变所有者,改变用户组,显示,设置文件默认权限

权限管理命令

1.chown:改变文件或目录的所有者

chown [用户][文件或目录]

在上一节我们知道可以更改文件权限的有两个角色,一个是管理员root,一个是文件的所有者;但再更改文件或目录的所有者时,只有root用户才能更改文件或目录的所有者。如图所示,当前用户为谱图用户tangtang,他是文件watermelon的所有者,但是不可以更改watermelon的所有者,如把所有者由tangtang改变为root

Linux权限管理命令之其他权限管理命令
Linux权限管理命令之其他权限管理命令

 登录到root用户下,修改普通用户tangtang创建文件watermelon的所有者

Linux权限管理命令之其他权限管理命令

 更改所有者的使用场景:

假设菜菜是root用户,他为了加深对Linux命令的理解,打算在Linux系统上写一个脚本,可是啊,她被Linda邀请去做演讲了,她不想脚本完成的时间推后,也不想拒绝Linda的邀请,怎么办呢?此时,他就可以把该脚本文件的所有者更改为唐唐,唐唐就可以在菜菜的基础上替她完成脚本的编写啦。

2.chgrp:改变文件或目录的所属组

chgrp [用户组][文件或目录]

chgrp tangtang watermelon

更改文件watermelon的用户组为tangtang

Linux权限管理命令之其他权限管理命令

 使用groupadd新增一个用户组pineapple,再把文件watermelon的用户组更改为pineapple

Linux权限管理命令之其他权限管理命令

 关于所有者,谁创建了该文件或目录,谁就是所有者,那所属组呢?一个用户可以属于多个组,但她只有一个默认组,每个用户在创建文件时,她就是该文件默认的所属组,每个用户只能有一个默认组。

在创建文件/目录时候我们没有设置文件/目录的读写执行权限,但是再查看文件的权限是,却显示有权限了,这是为什么呢??

3.umask:显示,设置文件的默认权限(缺省权限)

umask [-S]

  -S 以rwx形式显示新文件的默认权限

显示文件的默认权限,如下所示:

Linux权限管理命令之其他权限管理命令

 设置文件的默认权限:

  执行命令umask,可以看到0022,其中第一个0代表特殊权限,最后三个数字依次代表文件所有者,所属组,其他用户对应的权限。022表示权限:--- -w- -w-.

Linux权限管理命令之其他权限管理命令

   可以看到,当使用目录umask -S后,显示的权限与目录的权限一样,但相对于文件缺少了可执行权限x。这是因为再Linux权限管理中,文件时不具备可执行权限x的,任何新建的文件都会把可执行权限x去掉,因此文件中就没有了可执行权限x,这个如上图中文件apple的权限所示。

在执行命令umask时显示默认权限0022,第一个0表示特殊权限,第二个0用户具有权限rwx

第一个数字2表示所属组2号权限没有,即没有权限w,其所属组权限为rx

第二个数字2表示其他人2号权限没有,及没有权限w,其他用户权限为rx

当我们创建一个目录时,其初始权限默认为rwx r-x r-x,由于Linux中文件不具备执行权限x,所以其默认初始权限为rw- r-- r--

我们可以根据以下来阐述新建一个目录时,其默认权限

假设该文件具备权限为: 777 rwx  rwx  rwx

umask默认权限为:        022  ---   -w-    -w-

-------------------------------------------------------------------------

把两者做异或运算      744 rwx   r-x    r-x

异或运算:对应位置相同的为假,则新建文件不具备该权限,不同的为真,即新建文件具备该权限。这样操作后就可以得到新建文件的初始权限。如下图所示:

Linux权限管理命令之其他权限管理命令

默认权限umask 0022是可以修改的,但一般不建议修改。如果想修改,可以继续往下看:

假设想要把文件的初始权限修改为 730  rwx r-- ---,该如何操作呢?

解:假设新建文件具有权限  777  rwx  rwx  rwx

文件初始权限                       730   rwx  r--  ---

-----------------------------------------------------------------------

做异或运算的默认权限        037    ---   -wx   rwx

即把默认权限umask修改为037,即可得到新建目录的初始权限730 rwx r-- ---

Linux权限管理命令之其他权限管理命令