【Linux02-基本权限】“root的霸权”

   日期:2024-12-29    作者:yindufu1 浏览:57    移动:http://w.yusign.com/mobile/quote/8256.html

上期我们学习了使用Linux的基本指令,现在已经能初步使用Linux这个系统了。本期进一步讲解,拨开权限的迷雾。

多用户

我们了解过,Linux是一个多用户系统,但对这个“多用户”不太了解。

用户方面,只有三种用户

  • root 超级管理员 (不受任何权限约束
  • 加入“sudoers”的“白名单用户”
  • 普通用户

那如何切换用户呢

su
是什么

用于切换用户的命令。

怎么用

su [用户名]

  • root 切换到 其他用户:直接切
 
  • 非root用户之间的切换:输入要切换至的用户的密码
 
  • 回到上个用户:exit/[ctrl+d]
 

怎么切换你说完了,但是什么是加入sudoers的“白名单用户”我还不知道呢

我们需要先了解 “sudo” 这个命令。

sudo
是什么

用来短暂提权的命令。

怎么用

sudo [root才能执行的命令]

  • sudo + 命令:提权执行命令

  • sudo -i:sudoer切换到root用户(输入sudoers的密码

     

*sudo过后一小段时间提权才失效

有了以上了解,可以大概明白,sudoers就是可以执行sudo的人。

【那怎么成为sudoer呢?】

打开 /etc/sudoer,找到对应位置,添加用户名。具体的操作见下篇基本开发工具

权限是什么意思

简单理解:某个人能不能做某件事。

,在某视频app上,你不是会员,就不能看“VIP专属电影”。


有了前面的基础,Linux下的权限就好理解多了。

研究Linux下的权限,首先要明确Linux的设计哲学一切皆文件 那么谈论Linux下的一切权限,就都是在谈论对文件的权限

文件的权限又是什么呢?我们讲过:文件 = 文件内容 + 文件属性。“文件属性”就是本篇要谈的。但除了“文件属性”,还有一个重要的点:用户身份

所以权限的意思迁移到Linux下,就是

Linux下的权限 = 用户身份 + 文件属性

意思就是,某个身份对某个文件有没有r/w/x的权限

用户身份

分三种

  1. owner:文件/目录的拥有者
  2. grouper:文件/目录的所属组
  3. other:除了owner和grouper外的其他人
 

*身份的匹配从左到右(owner => grouper,你无法同时拥有两个身份

【为什么有所属组?】

为了团队协作:只有拥有者和其他人,太绝对,团队协作类的事情就做不了。

【怎么理解所属组?】

比如,你给家里买了台电脑,家里的人都能用,但是外边的陌生人不能随便进来用。你就是owner,家人就是grouper,外边的人就是other。

文件属性

文件属性分为 文件类型 和 文件权限值

文件类型
标识符名字具体文件-普通文件源文件 库文件 可执行文件 文件压缩包等d目录-c字符设备文件键盘显示器等b块设备磁盘等m链接文件快捷方式p管道文件-
 

注意,Linux系统本身不用后缀名作区分,但是不排除有些软件会用,而且写后缀名也易于区分,所以还是写上。

文件权限值
权限值字符表示二进制表示八进制表示读r(read)001(只读)4(只读)写w(write)010(只写)2(只写)执行x(execute)100(只执行)1(只执行)
权限的意义
  • 文件
    • 文件的读:读文件的内容
    • 文件的写:向文件写内容
    • 文件的执行:执行文件
  • 目录
    • 目录的读:查看目录下内容
    • 目录的写:在目录下创建内容
    • 目录的执行:进入目录(cd)

这些意义理解记忆。

【为什么可以用二进制表示?】

因为权限这东西只有两种状态:有/无。所以可以用1/0分别表示有/无。

而八进制就是由二进制转换来的:1个二进制位 = 3个八进制位(可以快速计算:[读=4] + [写=2] + [执行=1] = 7

 

结合文件属性和用户身份来理解

 
  • owner(bacon)对目录dir,有rwx权限
  • grouper(bacon)对目录dir,有rwx权限
  • other对目录dir,有r和x权限
 
  • owner(bacon)对普通文件file,有rw权限
  • grouper(bacon)对普通文件file,有rw权限
  • other对普通文件file,有r权限

Linux是多用户的系统,不同身份不同权限更利于安全管理。


设置文件权限方面,我们可以设置 某身份对文件的权限文件所属的身份。

设置某身份对文件的权限

什么是某身份对文件的权限

 

怎么设置呢

chmod
是什么

是用来修改某身份对文件的权限的指令。

怎么用
  1. chmod [身份][+/-][权限标识符] [文件名]
  2. chmod [八进制表示] [文件名]
  • 身份
    • u:拥有者(owner/user)
    • g:所属组(grouper)
    • o:其他人(other)
    • a:所有人(all)
 

设置文件所属的身份

什么是文件所属的身份

 

怎么设置呢

chown & chgrp
是什么

chown:修改文件的owner

chgrp:修改文件的grouper

了解怎么用之前,我们先想想:给别人一个东西的时候,需要经过别人的同意吗

1˚“不用吧,我给你打1个w,还需要经过你的同意吗?”

2˚ “臭家伙,来!臭掉的牛奶,喝!”

保险起见,还是需要的……

但是每次要改一下owner就要发送请求,直到预备owner同意,才能改好,那不是太费劲了吗

这时候root来了:”你们这也太费劲了!都闪开,我来改!“

当root没空,就sudo:“root大哥让我来办点事……”

怎么用

chown [要修改至的用户名] [要修改的文件名]

 

chgrp [要修改至的用户名] [要修改的文件名]

 

没有choth?own和grouper变了,other自动变,而且other也不需要专门改。

我们创建一个文件(目录/文件)的时候,它默认的权限是这样的

【Linux02-基本权限】“root的霸权”

 

那为什么是这样呢

文件的默认权限由两个东西决定:文件/目录设定的默认权限 + 权限掩码。

默认权限
  • 文件的默认权限:666(为什么就没执行?因为大多普通文件本来就不具有可执行属性
  • 目录的默认权限:777(默认可以查看、创建、进入

也不对啊,有一些权限是没有的啊。是因为有权限掩码……

权限掩码umask
是什么

用来“掩盖”掉原权限的一串码。

umask中出现的,在原权限的对应位置去掉

这样讲有点抽象,放到实例中看看

怎么用

作指令:

  • umask:查看当前权限掩码

     

    默认的umask是002(第一个0是为说明后面的数是八进制数,也就是默认去掉other的写权限。

    再次看看“刚出炉的文件”权限值对了没

     
      
    • 目录的默认权限是777 = rwx rwx rwx,umask是002 = --x

      umask出现的地方对应去掉 rwx rwx rw**-** ,这就对了

    • 文件的默认权限是666 = rw- rw- rw-,umask是002 = --x

      umask出现的地方对应去掉 rw- rw- r**-** - ,这就对了

  • umask xxx:修改权限掩码为 xxx

     

    我们把umask设置成222,代表每个身份都“掩盖”掉w(写权限,果然成功。

【umask是怎么实现“掩盖”的?】

直接相减

目录的默认权限“掩盖”时直接相减:777 - 002 = 775(other可读可执行?并不是。

那是怎么操作的

位运算:xxx & (~umask)

  • umask要“掩盖的”是1,取反后,要“掩盖”的是0
  • 或——0是老大,有0的地方都变成0

多人协作时,常常创建一个共享的tmp文件夹,用来管理各自的临时文件。那这个tmp,应该设置什么样的权限呢

777,每个人都能读写执行看起来就挺不错的,真的吗

万一我的代码写得好,别人把我代码移到自己的目录了咋办?万一别人看我不爽,把我代码删了咋办

粘滞位这不就来了嘛

是什么

是一种权限,使得只有root和owner可以 移动/删除文件

怎么用

粘滞位设置给谁呢?文件?不是的,互删文件的错误由目录产生,所以给目录设置粘滞位——粘滞位是一种目录权限

 

可以看到,可执行权限的位置被改成了 t,这就代表这个目录被设置了粘滞位

 

此时切换用户,user不是owner或者root,所以就算他气急败坏地“rm -rf *”,也没用。(嘻嘻嘻


Linux下的权限是一个关键概念,如有讲得不透彻、不清楚,或有错漏之处,望请斧正

本期的分享就到这里啦,这里是培根的blog,期待和你共同进步

本文地址:http://w.yusign.com/quote/8256.html    述古往 http://w.yusign.com/static/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关行情
推荐行情
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号