Linux教程

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

本文主要是介绍Linux权限管理命令之其他权限管理命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

权限管理命令

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

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

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

 

 

 

 

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

 

 

 更改所有者的使用场景:

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

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

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

chgrp tangtang watermelon

更改文件watermelon的用户组为tangtang

 

 

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

 

 

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

 

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

 

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

umask [-S]

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

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

 

 

 

 设置文件的默认权限:

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

 

 

   可以看到,当使用目录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

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

 

 

 

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

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

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

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

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

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

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

 

 

 再次尝试后新建文件所有者权限为7部分也不能如异或运算得出的结果一样。

若还想再尝试可以试试默认权限改为077,这个符合上面阐述的异或操作得出的结果,若想尝试更多修改默认权限umask,可查阅相关资料。

 

这篇关于Linux权限管理命令之其他权限管理命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!