Linux 权限详解

用户切换命令

切换用户身份的方法

  • 普通用户→超级用户

    • su:切换为超级用户,保持当前工作目录不变
    • su -:以超级用户身份重新登录系统
    • sudo -i:直接切换到 root 用户(需当前用户在 sudoers 列表)
  • 超级用户→普通用户

    • su 用户名:无需密码即可切换回指定用户
    • exitCtrl+D:退出当前超级用户会话

sudo 的常用方式

  • sudo 命令:以 root 权限执行单条命令(需输入当前用户密码)

  • sudo -u 用户名 命令:以指定用户身份执行命令- 普通用户→超级用户

    • su:切换为超级用户,保持当前工作目录不变
    • su -:以超级用户身份重新登录系统
  • 超级用户→普通用户

    • su 用户名:无需密码即可切换回指定用户

权限基础概念

本质:决定用户能否执行特定操作

作用

  1. 控制用户行为,防止误操作
  2. 基于角色和目标的权限管理机制

权限构成

  • 角色:拥有者(u)、所属组(g)、其他用户(o)
  • 目标属性:读(r )、写(w)、执行(x)

权限角色示意图

注:other用户无需特殊标识,既非拥有者也非所属组成员的用户都归为other

用户与角色关系

具体用户(如sty、root)与角色(拥有者/所属组/other)的关系类似于:

  • 校长(角色)与张三(具体担任者)

所属组的作用

实现精细化的权限管理,解决以下场景:

  • 多团队协作时,允许组内共享文件而限制组外访问
  • 避免将文件权限开放给所有other用户

文件与目录权限差异

权限文件操作目录操作
读(r/4)查看内容浏览目录
写(w/2)修改内容增删改文件
执行(x/1)运行程序进入目录

示例文件权限

示例文件test.txt权限:

  • 拥有者:rw-
  • 所属组:rw-
  • other:r–

权限管理命令

chmod

功能:修改文件访问权限

格式

chmod [选项] 权限 文件名

常用选项

  • -R:递归修改目录权限

权限表示法

  1. 符号法:

    • +:添加权限
    • -:移除权限
    • =:设置权限
    • 用户标识:
      • u:拥有者
      • g:所属组
      • o:其他用户
      • a:所有用户
  2. 八进制法(三位数字)

chmod示例

八进制权限示例

chown

功能:修改文件拥有者(也可以修改所属组)

格式

chown [选项] 用户名 文件名
chown [选项] 拥有者用户名:所属组用户名 文件名

chgrp

功能:修改文件所属组

格式

chgrp [选项] 组名 文件名

权限判定规则

  1. 仅文件拥有者和root可以修改权限
  2. 无权限时系统会拒绝访问
  3. 用户角色确定,只确定一次,权限检查顺序:拥有者→所属组→other
  4. root用户不受权限限制
  5. 可执行权限≠文件实际可执行

默认权限机制

默认权限

原因

  • 普通文件:初始权限666(rw-rw-rw-),默认不带x
  • 目录文件:初始权限777(rwxrwxrwx),默认带x

为什么创建文件或目录的默认权限是上图所示?(umask)

umask

功能:控制新建文件的默认权限

计算公式
实际权限 = 初始权限 & (~umask)

特点

  • superuser默认umask:0022
  • 普通用户默认umask:0002

目的

  • 希望凡是在umask中出现的权限,都不应该在最终权限中出现

为什么要有umask

  • a.默认权限,由os自主决定,无法在创建前进行修改----系统可配置,可以灵活满足需要的一种表现
  • b.特殊情况下,配置umask,可以控制文件的默认权限,让我们整个文件都是可控的

目录权限要点

  • x权限:能否进入目录(cd)
  • r权限:能否查看目录内容(ls)
  • w权限:能否在目录中创建/删除文件

重要:文件删除权限取决于所在目录的w权限,而非文件本身的权限

这就引出了关键问题:用户只要拥有目录的写权限,就能删除该目录下的文件,即使对该文件本身没有写权限。
因此,文件能否被删除取决于所在目录的写权限,而非文件自身的权限设置。
当两个用户需要进行文件共享协作时,可以在公共目录下设置粘滞位来创建共享文件。

粘滞位(Sticky Bit)

作用:设置chmod +t后,目录中的文件仅允许:

  1. root用户删除
  2. 目录拥有者删除
  3. 文件拥有者删除

应用场景:多用户共享目录

实际中我们可以直接使用根目录中的tmp文件(是linux中存放缓存的地方)来进行文件共享

粘滞位示例

权限总结

• 目录的执行权限(x)决定用户能否在该目录下执行命令
• 若目录缺少x权限,用户将无法执行任何操作(包括cd进入目录),即使拥有r权限(这是一个常见误区,认为有读权限就能访问目录内容)
• 若目录具备x权限但缺少r权限,用户可以执行命令并进入目录,但无法查看目录内容
• 此时即使执行ls命令,也无法显示目录中的文件列表

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值