您的位置:首页 > 运维架构 > Linux

Linux权限管理命令详解

2016-12-07 15:35 447 查看
在说权限管理命令前,我无意中发现了一个命令 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,也就是其他人对这个文件没有任何权限



好了,设置完了,接下来我们用useradd来添加一个f1的用户,属于是其他人了,然后su切换到f1用户,我用这个f1的其他人来删除我刚才创建的文件fq.list,看看能否成功



我们发现竟然成功了,这个文件对其他人明明是没有权限的啊,怎么会成功呢,好了,根本原因在于这个文件所在的目录的权限是777,我们都明白r是读权限,w是写权限,x是执行权限,那么这个rwx对于文件或者目录到底意味着什么呢



我们看这个表就会发现,这些权限对于目录和普文件的作用是不同的,对于普通文件,我们可以分别理解为读取文件的,修改文件和可执行文件,但是对于目录来说,就分别是可以列出目录的内容,可以在目录中创建或删除问题,可以进入目录,那么刚才的问题就很清晰了,由于文件所在路径具体777权限,所以其他人也可以在这个路径下创建和删除文件。

对于chmod命令,还有一点忘记说了,就是加选项-R 的话,就是递归修改目录下的所有目录或文件的权限

好了,第一个命令说到这,看第二个

二 chown:修改文件或目录的所有者

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

注意,必须是root用户才有chown的权限

我们把/tmp/fuqiang/fuqiang1/fq.list的所有者修改为root,如下:



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

三 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 文件权限