佛山网站建设thual,wordpress和dede seo,网站怎么做虚拟连接,在线自助网站按照程序【Linux笔记】Linux基础权限 一、Linux权限的概念1.1、Linux中一切皆文件1.2、文件访问者的分类1.3、、Linux中的“用户白名单” 二、文件访问权限的修改2.1、权限的增加和减少的基础方法2.2、以八进制数修改权限 三、用户身份的修改3.1、修改文件的拥有者3.2、修改文件的所属组… 【Linux笔记】Linux基础权限 一、Linux权限的概念1.1、Linux中一切皆文件1.2、文件访问者的分类1.3、、Linux中的“用户白名单” 二、文件访问权限的修改2.1、权限的增加和减少的基础方法2.2、以八进制数修改权限 三、用户身份的修改3.1、修改文件的拥有者3.2、修改文件的所属组3.3、文件的默认权限与权限掩码 一、Linux权限的概念
就像我们现实生活中的各种单位一样不同的管理层有着不同的权限管理的层级越高权限就越大。 就好比一个公司的老板自然就拥有最高权限可以任意开除或录用某个人。在我们的Linux系统中也是有这样的层级分类的。 在Linux中的用户主要分为两类超级管理员用户(root)和普通用户但普通用户也可以细分为在“白名单”内的用户和不在“白名单”之内的用户。 超级管理员用户也就是root用户几乎不受任何权限用户他可以执行任何指令也可以不受任何权限限制的查看修改和删除任意文件即用户。
总结来说Linux中的权限主要是针对各种用户的。
Linux中的权限分为三类 r --可读权限 w --写(修改)权限 x --可执行权限 1.1、Linux中一切皆文件
想要很好的理解Linux中的权限管理就要先来理解一个概念——Linux中一切皆文件。 简单来说就是Linux中统一以文件的方式来管理各和访问种指令和设备。 反过来理解就是任何东西只要在Linux操作系统中不管它是不是文件Linux都以文件的方式对它们进行管理和访问。 例如我们可以使用which指令和whereis指令来搜索各种指令 我们最终会看显示了一堆目录和路径也就是说Linux中是以文件的形式来存储这些指令的。
1.2、文件访问者的分类
Linux中的文件访问者分为三类 文件的所有者u(user) 文件的所有组用户g(group) 其他人o(other) 而Linux的文件权限主要就是针对这三中用户的。我们可以随便在一个目录下执行ll指令就会发现每个文件的开头都跟着一长串的字符 其中第一个字符表示的是文件类型如果是d的话就是目录文件如果是-的话就表示普通文件 后面的这九个字符其实是要分成三组每一组分别对应着上面的某个访问者所拥有的权限其所对应的访问者如下 如上图举例该文件的拥有者对该文件有读写和执行权限所属组有读和执行权限其他人有读和执行的权限(‘-’ 就表示该用户没有对应的权限)。
1.3、、Linux中的“用户白名单”
Linux中有上千条指令有些指令是什么用户都能执行的但有些指令就只有root用户才能执行。 就例如安装软件或各种指令的指令yum就只有root用户能执行。 那么普通用户就绝对不能执行yum只领了吗 其实是可以的我们可以使用sudo指令来对普通用户进行“提权”这样就算是普通用户也能执行权限更大的指令了 但是我们还会发现一个问题就是当我们输完当前用户的密码之后会发现指令并没有被执行而是给出了下面这条提示 系统提示我们当前用户并不在一个名为“sudoers”的文件中。
那这是怎么回事呢
其实虽然我们可以通过sudo来对我们的用户进行提权但并不是所有的用户都可以被提权的。 想想如果每个普通用户都可以通过sudo来执行权限更高的指令然后只需要输入自己的密码就能执行指令了那Linux的权限设计岂不是有大bug 所以普通用户想要提权成功就必须要经过root用户的同意而同意的方式就是在sudoers文件中加入该普通用户的名字。 怎么操作呢我们可以先打开这个文件注意这个文件必须是root用户打开才是正确的。 该文件在root用户下的路径是 /etc/sudoers:
当我们打开这个文件之后找到大于101行左右
我们只需要像上图所示将我们想要被提权的用户的名称加上去即可然后在保存退出。 然后我们新加的这个用户就可以提权成功了 这里我的系统虽然已经安装了这条指令但可以证明的是提权成功了。
二、文件访问权限的修改
2.1、权限的增加和减少的基础方法
如果我们想对某个文件的权限进行修改我们可以使用chmod指令。 chomd指令的具体用法是 chomd u/g/or/w/x 文件名 chomd u/g/o-r/w/x 文件名 意思就是针对某种用户对某文件的权限加上或是减去某个权限。 例如我们想去掉“其他人(o)”对某一文件的“读”权限我们就可以这样做 而如果我们又向把读权限加回来就可以这样做 而如果在chomd后面没有指明何种用户的话那就是默认对所有类型用户都修改权限
2.2、以八进制数修改权限
除了上面的基础修改方法其实我们还有一种更“便捷”的修改权限的方式那就是使用三位八进制数来对文件的权限统一修改。 举一个例子 我们会发现当执行完“chmod 777 test.t”指令后所有用户对应的权限都被更改了。
其实想要理解这3个数组并不难我们只需要将对应有权限的位置用1来表示没有权限的位置用0来表示例如目前ExerciseDir的权限是 rwx rwx r-x 我们用数字对应就变成了 111 111 101 我们可以把每种用户对应的权限看做是一个三位的二进制数然后再转化成八进制就变成了 775 我们将test.t的权限也设置成775就可以看到这两个文件的权限变得一样了
但是这种方法看起来是比较简便的但是如果不常进行二进制转8进制的话可能还是需要一段计算时间的。 所以如果是想要快速修改所有用户的权限的话可以考虑使用这种方法但如果只是想修改单种用户的单个权限的话我感觉还是使用基础方法会比较直观一点。
三、用户身份的修改
3.1、修改文件的拥有者
如果我们想要修改某个文件的拥有者我们可以使用chown指令该指令的使用方法如下 chown 新拥有者 文件名 但是需要注意的是修改文件的拥有者是需要root的权限的所以我们得加上sudo指令。
例如我们可以对test.t修改以下拥有者 我们就会发现test.t的拥有者由原来的Mr_Lin1变成了Mr_Lin2了。 上面的第一个用户名表示的是拥有者第二个用户名表示的是所属组的组长而除了所属组和拥有者以外的用户就都属于其他人所以其他人也就没必要在显示出来。
3.2、修改文件的所属组
而修改文件的所属组我们可以使用chgrp指令该指令的用法如下 chgrp 新所属组 文件名 同样这条指令也是需要root权限的
3.3、文件的默认权限与权限掩码
其实我们在新建一个普通文件或者目录的时候是有对应的默认权限的普通文件的默认权限是666目录的默认权限是777。 但当我们真的创建一个文件和目录并查看其权限的时候却发现并不是这样 我们会发现对应的权限分明是664和775。
新建一个文件的权限其实是默认权限减去该用户的权限掩码也就是将权限掩码中有的权限减去。对于每个类型用户对应的三位二进制数来说其实计算的方法很简单就是将权限掩码按位取反后再与默认权限按位与即可。
我们可以使用umask指令来查看权限掩码 将权限掩码002转化成二进制为000 000 010按位取反后为111 111 101所以和普通文件的默认权限110 110 110 和目录文件的默认权限111 111 111 按位与后就得到了110 110 100和111 111 101也就是664和775。
我们也可以使用**umask “三位八进制数”**指令来修改权限掩码