Linux权限管理命令详解

在说权限管理命令前,我无意中发现了一个命令 ll,验证了一下,发现跟ls -al效果是一样的,这个确实方便些,好了,接下来看下几个权限管理的命令:
一 chmod:改变文件或目录的权限
第一种用法chmod [{ugoa} {+-=} {rwx}] [文件或目录]
u代表user g代表group o代表other a代表all
+代表增加权限 -代表减少权限 =代表赋予权限
下面看个例子,创建目录 /tmp/fuqiang/fuqiang1
查看/tmp/fuqiang/fuqiang1目录的权限

我们看到权限是rwxr-xr-x,现在我们增加用户所在组的可写权限chmod g+w /tmp/fuqiang/fuqiang1

发现成功了,我们把用户权限,所在组权限和其他人权限全部改成rwx,chmod a=rwx /tmp/fuqiang/fuqiang1

我们把user去掉执行权限,所在组去掉执行权限
chmod u-x,g-x /tmp/fuqiang/fuqiang1
,好了第一种用法就是这样,我们发现每次加u g o a的很麻烦,有没有简单点的用法呢
第二种用法,数字表示法,我们把rwx分别用数字4 2 1来代替,那么如果三个权限全有,就是4+2+1=7,如果只有读和写权限就是4+2=6,如果只有读和执行权限就是4+1=5,如果只有写和执行权限就是2+1=3,很简单吧,下面我们把刚才的目录权限设定为所有权限都有,也就是777,chmod 777 /tmp/fuqiang/fuqiang1,来看下
我们发现成功了,用法很简单不多说了,下面来看一个很简单的问题,现在我们的目录/tmp/fuqiang/fuqiang1的权限是777了,也就是所有权限都有,我们在这个路径下创建一个文件fq.list,并且把这个文件的权限设置为770,也就是其他人对这个文件没有任何权限

linux常用的权限管理命令

好了,设置完了,接下来我们用useradd来添加一个f1的用户,属于是其他人了,然后su切换到f1用户,我用这个f1的其他人来删除我刚才创建的文件fq.list,看看能否成功
我们发现竟然成功了,这个文件对其他人明明是没有权限的啊,怎么会成功呢,好了,根本原因在于这个文件所在的目录的权限是777,我们都明白r是读权限,w是写权限,x是执行权限,那么这个rwx对于文件或者目录到底意味着什么呢

linux常用的权限管理命令


我们看这个表就会发现,这些权限对于目录和普文件的作用是不同的,对于普通文件,我们可以分别理解为读取文件的,修改文件和可执行文件,但是对于目录来说,就分别是可以列出目录的内容,可以在目录中创建或删除问题,可以进入目录,那么刚才的问题就很清晰了,由于文件所在路径具体777权限,所以其他人也可以在这个路径下创建和删除文件。
对于chmod命令,还有一点忘记说了,就是加选项-R 的话,就是递归修改目录下的所有目录或文件的权限
好了,第一个命令说到这,看第二个

二 chown:修改文件或目录的所有者
语法:chown [用户] [文件或目录]
注意,必须是root用户才有chown的权限
我们把/tmp/fuqiang/fuqiang1/fq.list的所有者修改为root,如下:

linux常用的权限管理命令


我们发现成功了,这个命令很简单,没什么好说的,下面看第三个命令

三 chgrp:修改文件或目录的所属组
语法:chown [用户组] [文件或目录]
注意,必须是root用户才有chgrp的权限
同样,我们把/tmp/fuqiang/fuqiang1/fq.list的所属组改为root,如下:

好了,很简单,我们看最后一个命令

四 umask:显示,设置文件或目录的缺省权限
umask -S 显示我们一般创建目录的权限,来看一下

也就是说我们创建一个目录的默认权限就是u=rwx,g=rx,0=rx,下面我们创建一个目录看一下

好了,果然是这样的,下面我们再创建一个文件看一下

我们发现文件的用户权限,所属组权限和其他人权限都少了一个x执行权限,这是linux的一种保护,因为x权限比较敏感,病毒什么的可以执行,除了x权限之外,其他权限都是跟umask默认是一样的
那么如果我们直接执行umask呢

我们得到了一个0022,第一个0我们先不管,后面三个022跟u=rwx,g=rx,0=rx刚好是777-022=755的结果,所以这个得到的结果是777-默认权限的结果,那么如果我们要修改一下默认权限,改为u=rw,g=rx,0=rx,那么就是655,用777-655=122,我们执行umask 122

接着我们再创建一个目录来验证下

发现跟我们要改成的权限655一致了,那么我们再创建一个文件呢

发现只是少了x执行权限,跟我们刚才说的对上了。

好了,linux常用的权限管理命令就说到这里,如果有问题,欢迎执行,谢谢!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14755.html