当前位置: 首页 > news >正文

Linux权限(0基础)

文章目录

  • Linux权限
    • 引言
    • Linux系统中的权限概述
      • 权限的作用
      • 三种用户类别
    • 权限的表示方法
      • 字符表示法
      • 数字表示法
    • 常用权限管理命令
      • 查看权限:ls
      • 修改权限:chmod
        • 数字方式示例
        • 符号方式示例
      • 修改所有者与组:chown 和 chgrp
    • 目录权限的特殊说明
    • 特殊权限详解
      • SUID(Set User ID)
      • SGID(Set Group ID)
      • Sticky Bit
    • 实战示例
      • 示例 1:给文件设置常规权限
      • 示例 2:修改文件所有者和所属组
      • 示例 3:设置 SUID 权限
      • 示例 4:为目录设置 Sticky Bit
    • 常见问题与总结
      • 常见问题
      • 总结


Linux权限

本文面向 Linux 新手,从零基础出发,详细介绍 Linux 文件与目录的权限管理机制、权限表示方法、常用命令以及特殊权限的设置,帮助你建立对 Linux 权限系统的全面认识。


引言

在 Linux 系统中,权限管理是确保系统安全和资源合理使用的重要机制。每个文件和目录都被赋予了一定的权限,以决定哪些用户可以读取、修改或执行该文件。对于刚接触 Linux 的初学者来说,理解这些概念至关重要。本文将从最基础的概念出发,逐步深入讲解 Linux 权限的各个方面。


Linux系统中的权限概述

权限的作用

  • 保障安全性:防止非授权用户修改或删除系统文件,降低恶意软件的风险。
  • 分权管理:确保不同用户只能访问和操作自己被允许的文件和目录,从而实现“最小权限原则”。
  • 资源保护:保护重要的配置文件、日志文件和数据文件,避免意外破坏。

三种用户类别

Linux 系统中,文件与目录的权限分为三个部分,每个部分分别对应不同的用户类别:

  • 所有者(Owner)
    文件或目录的创建者,拥有最高的控制权。

  • 所属组(Group)
    与文件所有者属于同一用户组的用户。Linux 中的用户可以被分配到一个或多个组,组内用户共享一定的权限。

  • 其他用户(Others)
    除所有者和所属组外的所有用户。


权限的表示方法

Linux 中主要有两种方式来表示文件和目录的权限:字符表示法和数字表示法。

字符表示法

在终端中使用 ls -l 命令时,会看到类似下面的输出:

-rwxr-xr-x 1 user group 1234 May 10 12:00 file.txt

解析说明:

  • 第1位:文件类型

    • - 表示普通文件
    • d 表示目录
    • l 表示符号链接
  • 接下来的9位:分为3组,每组三个字符

    • 第一组(rwx):所有者的权限
    • 第二组(r-x):所属组的权限
    • 第三组(r-x):其他用户的权限

各字符含义:

  • r:读权限(Read),允许查看文件内容或列出目录内文件列表。
  • w:写权限(Write),允许修改文件内容或在目录内创建、删除文件。
  • x:执行权限(Execute),允许执行程序或进入目录(使用 cd 命令)。

数字表示法

数字表示法使用三个数字表示权限,每个数字是对应读、写、执行权限的数值之和:

  • 读(r) = 4
  • 写(w) = 2
  • 执行(x) = 1

例如:

  • 7 表示 4 + 2 + 1 = rwx
  • 6 表示 4 + 2 + 0 = rw-
  • 5 表示 4 + 0 + 1 = r-x

因此,权限模式 755 表示:

  • 所有者:7 = rwx
  • 所属组:5 = r-x
  • 其他用户:5 = r-x

常用权限管理命令

查看权限:ls

使用 ls -l 命令可以查看文件或目录的详细权限信息:

ls -l file.txt

输出示例:

-rwxr-xr-x 1 user group 1234 May 10 12:00 file.txt

修改权限:chmod

chmod 命令用于修改文件或目录的权限。支持数字方式和符号方式。

数字方式示例

script.sh 文件的权限修改为 755

chmod 755 script.sh
符号方式示例

将文件权限设置为:所有者拥有读、写、执行,组和其他用户拥有读和执行权限:

chmod u=rwx,g=rx,o=rx script.sh

修改所有者与组:chown 和 chgrp

  • chown:修改文件或目录的所有者
    chown newuser file.txt
    
  • chgrp:修改文件或目录的所属组
    chgrp newgroup file.txt
    
  • 同时修改所有者和组
    chown newuser:newgroup file.txt
    

目录权限的特殊说明

目录权限与文件权限略有不同,主要体现在以下几点:

  • 读权限(r):允许列出目录内的文件和子目录(例如使用 ls 命令)。
  • 写权限(w):允许在目录内创建、删除或重命名文件和子目录。
  • 执行权限(x):允许进入目录(使用 cd 命令),即使没有读权限也可进入,但无法列出目录内容。

注意:对于目录来说,单独拥有读权限但没有执行权限,用户虽然可以查看文件列表但无法进入目录;反之,只有执行权限,用户可以进入目录但看不到文件列表。


特殊权限详解

除了基本的读、写、执行权限外,Linux 还提供了特殊权限,主要有 SUID、SGID 和 Sticky Bit。

SUID(Set User ID)

  • 作用:使得当用户执行一个设置了 SUID 权限的可执行文件时,该进程以文件所有者的权限运行,而非当前用户的权限。
  • 典型应用passwd 命令。普通用户执行 passwd 时,实际上需要修改只有 root 才有写权限的 /etc/shadow 文件。
  • 设置方法
    chmod u+s program
    
  • 检查方法:使用 ls -l 命令,SUID 文件会显示为 rws(例如:-rwsr-xr-x)。

SGID(Set Group ID)

  • 作用(可执行文件):使得执行该文件时,进程的有效组 ID 变为该文件所属组。
  • 作用(目录):使得在该目录中新创建的文件和目录继承父目录的组属性。
  • 设置方法
    chmod g+s directory
    
  • 检查方法:SGID 的目录权限通常显示为 drwxr-sr-x

Sticky Bit

  • 作用:通常用于目录,设置后目录下的文件只有文件所有者或 root 能够删除或重命名,即使其他用户对目录拥有写权限。
  • 典型应用/tmp 目录,所有用户可以在此创建文件,但只能删除自己创建的文件。
  • 设置方法
    chmod +t directory
    
  • 检查方法:Sticky Bit 目录权限显示为 drwxrwxrwt(最后一个字符为 t)。

实战示例

示例 1:给文件设置常规权限

假设你有一个脚本 myscript.sh,希望设置如下权限:

  • 所有者:读、写、执行
  • 同组用户和其他用户:读和执行

使用数字方式:

chmod 755 myscript.sh

使用符号方式:

chmod u=rwx,g=rx,o=rx myscript.sh

示例 2:修改文件所有者和所属组

将文件 example.txt 的所有者改为 alice,所属组改为 developers

chown alice:developers example.txt

示例 3:设置 SUID 权限

对可执行程序 upgrade 设置 SUID 权限,使得无论谁执行该程序,都以文件所有者身份运行:

chmod u+s upgrade

检查权限:

ls -l upgrade

输出可能类似于:

-rwsr-xr-x 1 root root 20480 May 10 12:00 upgrade

示例 4:为目录设置 Sticky Bit

对公共目录 /tmp 设置 Sticky Bit(通常系统默认已设置):

chmod +t /tmp

检查目录权限:

ls -ld /tmp

输出示例:

drwxrwxrwt 10 root root 4096 May 10 12:00 /tmp

常见问题与总结

常见问题

  • Q1:为什么我的文件权限设置没有生效?
    A:请检查是否具有修改该文件权限的权限(只有文件所有者或 root 能修改权限),并确认使用的命令格式正确。

  • Q2:目录没有读权限能进入吗?
    A:目录需要执行权限(x)才能进入,如果只有读权限而没有执行权限,则无法使用 cd 命令进入目录。

  • Q3:特殊权限与普通权限如何叠加?
    A:特殊权限(SUID、SGID、Sticky Bit)会显示在文件权限的相应位置,对执行程序和目录操作起到额外作用。需要注意的是,设置特殊权限时应谨慎,避免带来安全隐患。

总结

  • 理解基础概念:Linux 权限分为所有者、所属组和其他用户三部分,每部分均有读、写、执行权限。
  • 掌握表示方法:通过字符表示法和数字表示法都可以直观了解和设置权限。
  • 熟悉常用命令lschmodchownchgrp 等命令是管理权限的基本工具。
  • 注意特殊权限:SUID、SGID 和 Sticky Bit 为系统提供了更细粒度的安全控制,但使用时需格外谨慎。

通过本文的学习,你应能掌握 Linux 文件与目录权限的基础知识,并能运用这些知识来保护你的系统安全。不断实践和探索,将帮助你更深入地理解和运用 Linux 权限管理。


希望这篇博客能帮助你从零开始,系统地掌握 Linux 权限管理的相关知识。如果你有任何疑问或建议,欢迎在评论区留言交流。

相关文章:

  • 探索CSS魔法:3D翻转与渐变光效的结合
  • Axure设计之堆叠柱状图教程(中继器)
  • 2006-2023年上市公司社会责任报告文本(TXT格式)
  • 【生活好帮手】saas小程序,让线上服务触手可及。
  • FreeRTOS之互斥量
  • 机器视觉工程师如何学习C#通讯
  • SANS 网络安全 网络安全三件套
  • 解决MySQL 8.x初始化后设置忽略表和字段大小写敏感的问题
  • 算法刷题整理合集(二)
  • C题库-判断水仙花数
  • 基于 Redis Stream 实现消息队列功能
  • Java基础关键_021_集合(五)
  • Spring TX配置(声明式事务管理+annotation)
  • 计算矩阵边缘元素之和(信息学奥赛一本通-1121)
  • Python 实现的采集诸葛灵签
  • 研发团队协作软件推荐:18款工具对比
  • win10升级到22H2版本后无法联网
  • 01-Canvas-使用fabric初始
  • 从零搭建微服务项目Pro(第2-2章——JSR303自定义文件校验+整合至微服务公共模块)
  • Java使用JDBC连接操作Sqlite 笔记250314
  • 俄谈判代表团已抵达土耳其,谈判预计在莫斯科时间10时左右开始
  • 中科飞测将投资超10亿元,在上海张江成立第二总部
  • 深圳拟出让3宗居住用地,共计用地面积6.77公顷
  • 山西临汾哪吒主题景区回应雕塑被指抄袭:造型由第三方公司设计
  • 来伊份发布关于消费者反映蜜枣粽问题处理的情况说明:与消费者达成和解
  • 高波︱忆陈昊:在中年之前离去