【Linux取经路】权限管理 |
您所在的位置:网站首页 › 华为能不能root权限管理 › 【Linux取经路】权限管理 |
权限决定了一个人可以干什么和不可以干什么,它是一种限制,在日生活中大家也许或多或少都受到过权限的约束。 超级用户和普通用之间可以进行切换,普通用户在执行某些操作时如果受限了,可以切换成超级用户,再去执行前面的操作,说不定就成功了。 🔔用户切换: 命令:su [用户名]根据用户分类,用户切换可分为:普通用户切换成超级用户、超级用户切换成普通用户、普通用户A切换成普通用户B。接下来就让我们看看它们之间的切换细节。 🎊普通用户切换成超级用户
小Tips:不知道大家有没有注意到,root用户的命令行提示符是#,普通用户的命令行提示符是$。 从一个普通用户切换成超级用户,除了上面的su指令外,还可以用su -指令。它们的区别是:前者仅是对身份的切换,不改变当前所处路径,而后者则是以重新登录的方式切换成超级用户,此时不仅完成了身份切换,并且当前所处的路径也变成了root用户的家目录。
🎊普通用户A切换成普通用户B
🎊对一条指令进行短暂提权 除了上述的三种身份切换,普通用户还可以通过sudo 要提权的指令对sudo后面跟的指令进行提权,目的是以超级用户的身份去执行该条指令。 一件事情是否允许被你做,这就叫做权限。比如:有一个叫张三的人,他是一位校长,因此他可以随意的进出校长办公室。这里他能随意进出校长办公室,是因为他叫张三,还是因为他是校长?当然因为他是校长,才可以随意进出校长办公室。因此我们可以得出下面的结论: 人+身份(角色),可以具体决定一个人可以干什么 权限认证的是身份上面说到,权限是一件事情是否允许被你做,这句话说的其实不够严谨,应该再给这句话加上一个前提,事情必须具备这样做的属性,比如:你想吃掉硬盘里面存储的文件来充饥,这显然是不可能的,因为文件本身就不具备填饱我们肚子的属性。因此可以得到下面的结论: 权限也和事物的“属性”有关在Linux环境中,我们所有的操作都是针对文件进行的,因此我们要先知道文件具备哪些属性,我们可以对文件干些什么。 🔔文件属性我们可以通过ls -l指令,查看当前目录下所有文件的属性。 🎊文件类型 Linux系统中,文件名后缀没有直接意义,系统不通过后缀来区分文件类型,而是通过字符来区分文件类型。但是在Linux系统上运行的软件会通过后缀来区分文件类型。Linux系统中主要有以下几种文件类型: -:普通文件(文本文件、源代码、可执行程序、库)。 d:目录文件 b:块设备文件(磁盘文件) c:字符设备文件(键盘、显示器文件) p:管道文件(用来进行通信) ……🎊文件属性 Linux系统中主要有以下几种文件属性: r:读权限,对于普通文件而言,具有读取文件内容的权限;对目录文件来说,具有浏览目录信息的权限。 w:写权限,对于普通文件而言,具有修改文件内容的权限;对目录文件来说,具有删除、移动目录文件的权限。 x:可执行权限,都普通文件而言,具有执行文件的权限;对目录文件来说,具有进入目录的权限。 -:表示不具备该权限。 🔔Linux下的角色前面提到,权限和身份(角色)有关,Linux中分以下三种角色: 拥有者(文件的创建人) 所属组(为了实现组内协同) 其他人🎊用户与角色之间的关系
通过修改权限(下面会提到),给test.txt文件的拥有者只设置读权限,给所属组设置读和写权限,给其他人设置任何权限。问:此时的文件拥有者可以往文件中写入嘛? 只有文件的拥有者和超级用户才可以修改权限。 🔔chmod功能:设置文件的访问权限。格式:chmod [参数] 权限 文件名常用选项: R:递归修改文件目录的权限 🎊用法一: 用户表示符、+ - =、权限字符 u:拥有者 g:所属组 o:其他人 a:所有用户(拥有者、所属组、其他人) +:增加权限 -:取消权限 =:赋予权限示例: chmod u+r test.txt:表示给拥有者添加test.txt文件的读权限。 chmod a-rwx test.txt:表示取消所有用户对test.txt文件的读、写、可执行权限。 chmod u+rw,g+r,o+r test.txt:表示给拥有者加上对test.txtx文件的读权限和写权限,给所属组和其他人加上读权限。 🎊用法二:三位8进制数字对于一组权限中的三个权限位,可以用1表示具备该权限,用0表示不具备该权限。例如:111表示当前角色拥有读、写、可执行权限;010表示当前角色没有读权限和可执行权限,只有写权限。这三个2进制数字又可以用一个8进制数字来表示,111对应的8进制是7,010对应的8进制是2。这样一来每种角色的权限可以用一个8进制数字表示,那三个角色的权限就可以用三个8进制数字来表示。 功能:修改文件的拥有者格式:chown [参数] 用户名 文件名 把一个东西给别人,需要得到别人的同意,同理,A要把自己文件给B,需要得到B的同意。感觉好麻烦呀,那有没有一种方法,可以强制让A把他自己文件给B呢?答案是肯定的,可以把这个活交给大佬root来完成。 功能:修改文件或目录的所属组格式:chgrp [参数] 用户组名 文件名常用选项: -R:递归修改文件或目录的所属组示例: chgrp wanghua test.txt:表示把test.txt文件的所属组改成wanghua 📢权限掩码创建一个普通文件,它的权限是664,即:拥有者和所属组都具有读和写权限,而其他人只具有读权限。创建一个目录,它的权限是775,即:拥有者和所属组具备所有权限,其他人只具备读权限和可执行权限,为什么会这样呢?先给结论: 默认给普通文件的起始权限是666 默认给目录的起始权限是777但是上面的结论和我们观察到的现象不同。别急,起始还有一个叫做权限掩码的东西,它还会影响到我们所创建文件的初始权限,可以通过umask指令去查看权限掩码。 🎊权限掩码如何影响初始权限?凡是在权限掩码中出现的权限,不会出现在最终文件权限中出现。权限掩码就像一个漏斗,对默认权限进行“过滤”,得到的才是最终权限。 🎊如何修改权限掩码? umask 0555:表示创建的文件初始情况下对所有角色都只有读权限、没有写和可执行权限。 📢目录的权限 可读权限:是否允许用户查看目录下的文件内容 可写权限:是否允许用户在当前目录下进行创建、更改、删除 可执行:是否允许用户进入对应的目录当我们新建一个用户时,系统会自动在/home路径下创建一个用户的家目录,通过观察可以发现,所有家目录的权限都是700,这意味着,其他普通用户无法进入我的家目录,也不能查看我的家目录下的所有文件,更不能对我的家目录中的文件进行修改、删除,也不能在我的家目录中创建文件。 🎊存在的问题 上面的做法确实实现了文件数据的共享,但也存在着问题,回想一下上面提到的目录权限,一个目录如果有写权限w,就意味着可以在该目录下创建、删除、修改文件。停!注意删除文件,一个文件能否能够被删除是由它所在的目录决定的,并不由该文件本身所决定,如果文件所在的目录对当前角色有写权限,那么这个文件就可以被当前角色删除。 回到共享目录,上面说了,把共享目录对其他人的权限都设置为7,这意味着所有其他普通用户都可以删除共享目录下的任何文件。换句话说就是:用户A在共享目录下创建了一个文件,而用户B则可以随意的删除A用户所创建的文件。这显然是不合理的。如何解决这个问题呢?可能会有朋友想着,那就删除共享目录针对other的写权限w,但是这样我们同时也无法在共享目录下创建文件,就是失去了共享的意义。 🎊粘滞位的引出 为了解决上面的问题,引出了一个新的权限位:粘滞位。粘滞位的出现,避免了前面提到的互删这种不合理的操作。可以给共享目录针对other角色加上粘滞位权限。 chmod o+t shared:给共享目录的other加上粘滞位权限
小Tips:其实,系统已经帮我们在根目录下建立了一个共享目录。 今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是春人前进的动力! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |