【linux】linux权限的详细讲解
一、Linux 权限的概念1.1、用户分类Linux下有两种用户超级用户 (root) 与 普通用户超级用户可以再linux系统下做任何事情几乎不受权限的限制普通用户在linux下做权限范围内的事情超级用户的命令提示符是“#”普通用户的命令提示符是“$”1.2、切换用户inux 切换用户的指令是su在 Linux 中如果我们要从超级用户切换到普通用户直接 “su username” 即可没有任何限制但是如果我们要从普通用户切换到超级用户就需要输入 root 密码普通用户切换到 root 用户有两种方式su切换到 root 的当前目录su -直接切换到 root 的根目录注Linux 出于安全考虑从键盘输入的密码在终端上是不会回显的也就是说我们输入密码时屏幕不会显示任何东西2.3、用户提权在工作中我们使用Linux的时候可能会出现这样一种状况当前有一条指令必须拥有超级用户的权限才能执行但我们不想切换用户想直接让普通用户以root用户的身份去执行该指令sudo 指令可以满足我们的需求但是我们执行 sudo 指令发现了两个奇怪的现象1、使用 sudo 指令让我们拥有root用户的权限按理来说应该提示我们输入root密码但事实是它让输入我们自己用户的密码2、我以test的身份执行 sudo 指令它提示test用户不在 sudoers file 内sudo 失败(而如果我们不在 sudoers 文件中那么自然也不能通过 sudo 指令提权我们后面讲vim的时候一起解决)上面这些现象是由 sudo 的机制造成的sudo 存在的目的是为了 给受信任的用户提供最少的执行障碍受信任的用户是指被添加到 sudoers 文件中的用户也就是说当我们存在于 sudoers 文件中时说明 root 用户充分信任我们所以当我们使用 sudo 指令提升权限时只需要输入自己的密码即可注sudo 的有限时间为15分钟即当我们使用 sudo 提权成功后后面15分钟内再次使用 sudo 指令不需要再次输入密码二、Linux 权限管理2.1、引入权限即你是否可以做这件事情比如听网易云vip歌曲的时候只有vip身份的用户才可以听普通身份用户无法听权限认证和身份人与属性有关权限的认证跟身份有关权限也和人也有关。比如网易云vip音乐关心的你是否是vip这跟你的身份有关。权限的认证还跟事物的属性有关。例如你想在网易云上听周杰伦的《反方向的钟》尽管你有vip可以听网易云音乐上所有的歌曲可是网易云上买不到周杰伦的《反方向的钟》的版权网易云上不能满足你的要求那么你在网易云上就没有听周杰伦的《反方向的钟》的权限。这个事物的属性要满足你想要做的事情你才能有对应的权限。2.2、文件访问者的分类在 Linux 下文件的访问者被分为三类所有者文件和文件目录的所有者 – u (user)所属组文件和文件目录的所有者所在的组的用户 – g (group)其他用户除所有者和所属组用户之外的用户 – o (other)关于文件的所有者和其他用户相信大家都很容易理解但是为什么会有一个所属组呢我们以一个例子说明假设一家刚起步的很穷的公司要开发一款产品该公司的老板奉行竞争理念所以他把手下的人分为了两个组让他们来研发同一款产品最后哪个组的产品更优哪个组就拿额外的奖金但是呢由于公司很穷只买得起一台主机这时候问题就出现了两个组的成员公用一台主机那么组内成员的代码如何进行共享呢如果我把文件设置为私有这样虽然另外一组的人看不到我的代码但同时我的队友也看不到而如果我把文件设置为共有那么又可能有代码泄露的风险为了解决这种情况Linux 设计出了所属组的概念我们可以把多个用户归为一个组让组内的成员共享文件组外的成员则受权限限制2、文件类型和访问权限我们在 Linux 中查看一个文件/目录时文件前面通常会出现很长一串字符他们对应的含义如下第一个字符代表文件类型后面九个字符三三一组分别代表文件拥有者、所属组和其他用户的权限其中文件的权限一共分为三类r – 读权限Read 对文件而言具有读取文件内容的权限对目录来说具有浏览该目录信息的权限w – 写权限Write 对文件而言具有修改文件内容的权限对目录来说具有删除移动目录内文件的权限x – 可执行权限execute 对文件而言具有执行文件的权限对目录来说具有进入目录的权限注其中对应位置上有代表权限的字符说明该用户拥有对应权限如果显示 - 则代表该用户没有对应权限文件类型Liunx 中一共有七种文件d目录-普通文件 (可执行程序也属于普通文件)l软链接类似Windows的快捷方式b块设备文件例如硬盘、光驱等p管道文件c字符设备文件例如屏幕等串口设备s套接口文件文件后缀与文件类型在之前我们就提到Linux 中不以文件的后缀名来区分文件类型文件后缀属于文件名的一部分但这并不不代表我们不可以使用文件后缀来区分文件类型 – 意思就是虽然在 Linux 眼中文件后缀没用但是我们可以把文件后缀当作对用户的一个提示符号同时Linux 中不区分文件后缀并不代表 Linux 下的各种工具比如 gcc、g 区分文件后缀三、文件权限值的表示方法3.1、字符表示法3.2、八进制数值表示法rwx111有的地方就是1四、设置文件权限4.1、chmod 指令使用chmod指令可以完成对指定身份拥有者u所属组g其他人o的权限读r写w执行x的修改chmod [参数] 权限 文件名注意只有文件的拥有者和root才可以改变文件的权限1.chmod 指令权限值的格式用户表示符 /- 权限字符用户符号u拥有者g拥有者同组用户o其它用户a所有用户/-的意义向权限范围增加权限代号所表示的权限-向权限范围取消权限代号所表示的权限为了演示方便我提前吧权限全都置零了用户组其他用户所有人2.三位八进制数字文件的权限一共三种 – 读写执行所以用三个二进制位就可以表示全部情况如果用八进制则只需要一位rwx111有的地方就是14.2、chown 指令修改文件的拥有者chown [参数] 用户名 文件名注意当我们使用 chown 指令将属于我们的文件赋给别人时需要获得别人的同意所以在一般情况下我们是不能改变文件的拥有者的只有 root 不受权限的约束可以直接将属于 A 的文件赋给 B而不需要征得 A 和 B 的同意4. 3、chgrp 指令修改文件或目录的所属组chgrp [参数] 用户组名 文件名注意和修改文件的拥有者一样我们也不能直接修改文件的所属组需要征得别人的同意而 root 不受权限约束4.4、umask指令inux下文件的默认权限如下 – 普通文件的默认权限是0666(读写)目录文件的默认权限是0777读写执行其中第一位数字代表这是三位八进制数后面三位数字分别代表拥有者、所属组和其他人对文件的权限但是我们发现我们平时创建的文件的权限和上面的好像并不相同这是因为创建文件或目录的时候除了受默认权限的约束之外还要受到 umask (文件掩码) 的影响假设默认权限是mask则实际创建的出来的文件权限是: mask ~umask权限掩码的作用是将在其中出现的权限 在起始权限中全部去掉因为一个权限在 umask 中为1那么其按位取反后再与默认权限按位与得到的结果一定为0如果 umask 中为0则其按位取反后与默认权限按位与后不影响默认权限的值查看或修改文件掩码umask 权限值注意将现有的存取权限减去权限掩码后即可产生建立文件时预设权限超级用户默认掩码值为0022普通用户默认为0002修改文件掩码可以看到当我们把文件掩码设置为000后此时创建出的文件的最终权限就等于文件的默认权限4.5、file 指令辨识文件类型1.-c 详细显示指令执行过程便于排错或分析程序执行的情形2. -z 尝试去解读压缩文件的内容五、目录的权限目录权限所代表的含义如下可执行权限能否进入目录 – 如果目录没有可执行权限, 则无法cd到目录中可读权限能否查看目录中的文件内容 – 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容可写权限能否在目录中创建与删除文件 – 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件所以如果我们要进入一个目录就必须有可执行权限这也就是为什么普通文件的默认权限是666而目录文件的默认权限是777的原因六、粘滞位在一个Linux系统中通常有很多用户那么有时就会有这样一种需求 – 不同的用户需要在一个公共的目录下进行临时文件的增删查改这个公共目录通常由 root 用户创建然后将目录权限修改为777但是这里出现了一个问题由于这个公共目录的权限是777所以任何一个用户都可以删除此目录下的文件无论该文件是否属于自己如下可以看到对于test 来说ljm.txt 这个文件是不可读不可写且不可执行的test也确实不能对它进行这些操作但是 test 却能够直接删除 ljm.txt因为 ljm.txt 处于 tmp 这个目录之下而这个目录对于 tst 是可读可写可执行的为了出来上面这种不科学的情况Linux 引入了粘滞位的概念粘滞位是权限的一种特殊情况它不影响不同用户在公共目录下的读写执行操作但是它可以禁止不同用户之间互删文件粘滞位设置的方式很简单只需要在目录已有权限基础上加上 t 即可并且添加时不用指定用户Linux 会自动识别注当一个目录被设置为 “粘滞位” 以后该目录下的文件只能由文件的所有者或者 root 删除其余用户不能删除。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2470712.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!