首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【操作系统】2.用户和权限

【操作系统】2.用户和权限

作者头像
用户11952558
发布2026-01-09 14:13:38
发布2026-01-09 14:13:38
1490
举报

1. 用户权限和切换

Linux系统中包括两种主要用户类型:

  • root超级用户:拥有最高权限
  • 普通用户:权限受限

切换用户命令

  • susu -:从普通用户切换成超级用户
  • Ctrl+D:退回普通用户

su/和su - 的区别

  • su/:目录不变,仅切换用户身份
  • su -:重新登录,路径变化到新用户的家目录

2. 权限的暂时提升

sudo命令:前面加上sudo,输入普通账号密码,即可短暂提升权限。

使用场景:安装软件(到/user/bin中)

原理:为什么输入普通用户的密码可以提升权限到root?

  • 白名单机制:信任用户名单
  • 管理员可以将普通用户加入到白名单中
  • 只有在白名单的用户才可以短暂提权

注意:普通用户加上sudo后,如果不在白名单中,只会报错"不信任"。

3. 权限的概念

作用:控制用户行为,防止错误发生。

权限机制

  1. 首先限制的是角色(人)
  2. 其次要求目标必须是对应属性
  3. 权限 = 角色 + 目标属性

4. 角色分类

Linux系统中有三种角色:

  1. 拥有者 (Owner):文件的所有者
  2. 所有组 (Group):文件所属的用户组
  3. 其他用户 (Other):既不是所有者也不在所属组的用户

所有组的作用:假设一个文件要让同组的人看,但不想让对手看到,就可以将同组放到所有组,对手保持other。这样做可以进行更加精细化的权限管理。

5. 文件属性

文件属性包括三种权限:

  • 读 (r):读取文件内容
  • 写 (w):修改文件内容
  • 可执行 (x):执行文件

当用ll查看文件的属性时,会出现如:-rw-r--r--

权限解析

  • 第一个-:文件类型标识
  • 之后有三组三个字符:
    1. 第一组 (rw-):对于拥有者,这个文件可读可写不可执行
    2. 第二组 (r--):对于所属组,这个文件可读不可写不可执行
    3. 第三组 (r--):对于其他用户,这个文件可读不可写不可执行

因此文件的权限就可以用"角色+目标属性"描述。

6. 权限更改

作为拥有者,可以用chmod修改权限。

角色标识

  • u:用户(拥有者)
  • g:所属组
  • o:其他用户

示例

bash

代码语言:javascript
复制
chmod u-r test.txt    # 减去拥有者的读权限
chmod u+r test.txt    # 加上拥有者的读权限

重要规则

  • 当减去读权限后,访问文件会出现"Permission denied"
  • 组成员有但所有者没有的权限,所有者也不可以执行
  • 在CentOS下,用户角色确定顺序:拥有者 → 所属组 → other

7. root用户权限特性

root用户(超级用户)拥有最高权限,可以绕过普通权限限制。

可以看到,虽然对于other不能写,但是root依旧可以读写文件。

8. 可执行权限注意事项

重要:拥有可执行权限 ≠ 文件可执行,还需要文件本身是有效的可执行程序。

9. 更改拥有者和所属组

命令

  • chown:更改文件拥有者
  • chgrp:更改文件所属组

限制:普通用户不能直接把文件所有者改为别人,否则就乱套了,需要sudo短暂提权后才能更改。

10. 权限的二进制表示

由于rwx权限都为非黑即白,可以直接用0和1表示是否有对应的权限。

二进制表示

  • r = 4 (100)
  • w = 2 (010)
  • x = 1 (001)

示例

  • rw- = 110(二进制)= 6(十进制)
  • rw-rw-r-- = 664

快捷修改权限

bash

代码语言:javascript
复制
chmod 664 1.txt

11. 目录权限

目录权限的特殊性

  • 想进入一个目录,需要x权限(可执行权限)
  • r权限:查看目录的文件列表
  • w权限:在目录中创建、删除文件

将目录权限改为666(只保留读写)后,就无法进入了。

默认设置:创建目录时,默认给予rwx权限。

Linux用户隔离方式:只有目录的拥有者才拥有完整的rwx权限。

12. 默认权限和umask

新建文件的默认权限

  • 普通文件:666(可读可写不可执行)
  • 目录文件:777(可读可写可执行)

umask(权限掩码)

  • 最终权限 = 默认权限 & (~umask)
  • 原因:凡是在umask中出现的权限都不应该在最终权限中出现

umask的作用

  • 在特殊情况下配置权限掩码可以控制默认权限
  • 让代码权限设置更加可控

13. 多人协作权限管理

场景:先用root账号在普通用户路径下创建一个文件,设置成别人不可读写。

关键发现

  1. 普通账户不可读写,但是可以删除文件
  2. 这是合理的,因为删除与文件的权限无关,只与路径权限有关
  3. 一般情况下不会出现别人的文件

协作方案: 既然用户无法进入到别的用户的目录,那么如何两人一起配置文件?

  • 可以放到共享目录(如根目录下的共享文件夹)

14. 粘滞位 (Sticky Bit)

粘滞位 (t):在有t属性的目录里,就算有权限也不能删别人的文件。

设置粘滞位

bash

代码语言:javascript
复制
chmod +t tmp

设置了粘滞位的目录会带上t标志。

应用场景:公共目录(如/tmp)通常设置粘滞位,防止用户误删他人文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 用户权限和切换
  • 2. 权限的暂时提升
  • 3. 权限的概念
  • 4. 角色分类
  • 5. 文件属性
  • 6. 权限更改
  • 7. root用户权限特性
  • 8. 可执行权限注意事项
  • 9. 更改拥有者和所属组
  • 10. 权限的二进制表示
  • 11. 目录权限
  • 12. 默认权限和umask
  • 13. 多人协作权限管理
  • 14. 粘滞位 (Sticky Bit)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档