拒绝权限报错!三分钟掌握 Linux 权限管理

1. sudo 命令简介

  • sudo 用来进行指定的短暂授权。例如安装软件时需要管理员(root)权限,实际上安装的是一份软件,允许大家同时使用。

  • 权限控制如同"白名单",只有被列入的用户才能执行特定操作。

举例:

bash 复制代码
whoami
普通用户 -> sudo ls
# 报错
[sudo] password for kiana: is not in the sudoers file. This incident will be reported.

sudo 提示用户是否在 sudoers 文件中,决定是否授权。

bash 复制代码
-r--r----- root root /etc/sudoers

添加用户权限:

bash 复制代码
root ALL=(ALL) ALL
whb  ALL=(ALL) ALL

2. 权限概述

权限的本质是:决定用户能做或者不能做什么操作。

权限的两个主要目的

  1. 控制用户行为:防止错误发生。

  2. 理解和管理权限:分配精细的权限,控制访问。

权限 = 角色 + 目标属性

  • 角色:拥有者(user)、所属组(group)、其他用户(other)。

  • 目标属性:文件的读、写、执行权限。

3. 文件权限

文件权限组成

权限由9个字符表示:rwxrwxrwx

  • r = 读权限

  • w = 写权限

  • x = 执行权限

三个为一组

第一组表示拥有者权限,第二组表示所属组权限,第三组表示其他用户权限。

文件权限的数字表示

  • rwx = 7 (二进制: 111)

  • rw- = 6 (二进制: 110)

  • r-- = 4 (二进制: 100)

    例如

bash 复制代码
-rwxrw-r-- 1 kiana kiana 0 Sep 24 18:51 my.txt
↑ ↑↑↑ ↑↑↑ ↑
│ │││ │││ └── 其他用户权限(r--)
│ │││ └─┴──── 所属组权限(rw-)
│ └┴┴─────── 拥有者权限(rwx)
└─────────── 文件类型(-表示普通文件)

4. chmod 修改文件权限

  • u:拥有者(user)

  • g:所属组(group)

  • o:其他用户(others)

字符模式

bash 复制代码
chmod u-r my.txt  # 移除拥有者的读权限
chmod u+r my.txt  # 恢复拥有者的读权限
chmod u+rwx my.txt  # 为拥有者添加读、写、执行权限

数字模式

bash 复制代码
chmod 644 file    # 设置权限为rw-r--r--
chmod 755 file    # 设置权限为rwxr-xr-x

修改限制

  • 用户只能修改自己的文件权限。

  • 修改其他用户的文件权限需要更高权限(如 sudo)。

5. chown更改文件的所有者

普通用户无法改变其他用户的文件所有者,必须拥有 root 权限。

bash 复制代码
sudo chown kiana:kiana cmd  # 更改文件所有者

没有权限时会遇到什么情况?

系统会拒绝访问:

bash 复制代码
cat my.txt
# cat: my.txt: Permission denied

6. 目录权限

目录权限与文件权限有所不同,特别是执行权限在目录中的作用:

  • 读®:查看目录内容(列出文件)

  • 写(w):在目录中创建、删除、重命名文件

  • 执行(x):进入目录

注意:

  1. 没有读权限:无法查看目录内容

  2. 没有执行权限:无法进入目录

  3. 没有写权限:无法在目录内创建/删除文件

  4. 文件删除权限:取决于所在目录的写权限,而非文件本身权限

权限实例

bash 复制代码
drwxrwxr-x 2 kiana kiana 4096 Sep 24 20:48 code
  • 目录拥有者和所属组都有完全权限(rwx

  • 其他用户有读取和进入的权限(r-x),但不能修改目录内容。

7. 粘滞位(Sticky bit)

  • 作用:用于共享目录,防止非拥有者删除他人文件

  • 设置方法chmod +t directorychmod 1777 directory

  • 特征 :目录权限最后一位变为t,如drwxrwxrwt

  • 效果:用户只能删除自己创建的文件

设置粘滞位

bash 复制代码
chmod +t /shared/directory

共享文件一般放在系统文件tmp下

bash 复制代码
drwxrwxrwt  14 root root  4096 Jan 14 20:31 tmp/

8. 权限掩码 (umask)

umask:默认的文件权限掩码,控制文件或目录的默认权限。

默认权限

  • 普通文件的默认权限:666(rw-rw-rw-)(去掉可执行权限)

  • 目录的默认权限:777(rwxrwxrwx)(包含执行权限)

  • umask 会与默认权限进行按位与操作,从而决定最终的权限。

  • 最终权限 = 起始权限 & (~umask)

查看 umask

bash 复制代码
umask
0022    #因系统而异
  • 对文件:666 & (~0022) = 648(去掉了其他用户的写权限)

  • 对目录:777 & (~0022) = 753(去掉了其他用户的写权限)

9. 总结

  • 角色:每个文件都有三个角色权限:拥有者、所属组、其他用户。

  • 角色判定顺序:拥有者 → 所属组 → 其他用户(只判定一次)

  • 权限控制:每个角色可以拥有不同的读、写、执行权限。

  • root用户:不受任何权限限制

  • 修改权限 :使用 chmod 修改权限,使用 chown 更改文件所有者。

  • 权限掩码umask 用于设置默认文件权限,灵活调整。

  • 家目录隔离:默认情况下用户无法访问他人家目录

  • 可执行权限:需要"权限+可执行内容"双重条件

命令 功能 示例
chmod 修改权限 chmod 755 file
chown 修改拥有者 chown user:group file
chgrp 修改所属组 chgrp group file
umask 设置权限掩码 umask 022
sudo 临时获取root权限 sudo apt install package
相关推荐
爱看大明王朝15666 小时前
磁件学习-磁性元器件的极限计算
笔记·学习
Waay6 小时前
Linux Shell 知识点考评(一):grep 文本搜索(附答案)
linux·运维·服务器
jamon_tan7 小时前
Linux下串口RAW模式设置
linux
东风破1377 小时前
DM8达梦共享存储集群DSC搭建步骤
数据库·学习·dm达梦数据库
问心无愧05137 小时前
ctf show web入门 40
笔记
碧海银沙音频科技研究院7 小时前
基于VMware虚拟机ubuntu开发博通BK7258方法
linux·运维·ubuntu
星幻元宇VR7 小时前
VR科普大空间:沉浸式公共教育新模式
科技·学习·安全·vr·虚拟现实
@蓝莓果粒茶8 小时前
【Unity笔记】保姆级AssetBundle详解(含代码+避坑指南)
笔记·游戏·unity
kobesdu9 小时前
【ROS2实战笔记-20】ROS2 bag 录播与时间模拟:从基础操作到高级调试技巧
笔记·机器人·ros·ros2
云边有个稻草人9 小时前
【Linux系统】进程地址空间
linux·虚拟地址空间·进程地址空间·虚拟地址空间是怎么实现的?·为什么要有虚拟地址空间?·怎么理解虚拟地址空间?