Linux下如何删除文件或目录的权限?

在Linux系统中,权限管理是保障系统安全的核心机制之一,而“删除权限”通常指通过调整文件或目录的权限位,限制用户或用户组对资源的访问能力,本文将详细讲解Linux中删除权限的多种方法,包括基础权限修改、ACL精细控制及特殊权限处理,并结合实例说明操作逻辑。

linux如何删除权限

Linux权限基础回顾

Linux文件权限分为读(r)写(w)执行(x)三类,分别对应数字4、2、1,权限对象分为用户(u)用户组(g)其他用户(o),通过ls -l命令可查看权限位(如-rw-r--r--表示文件所有者有读写权限,用户组和其他用户仅有读权限),删除权限的本质是通过修改这些权限位,撤销或限制特定对象的操作能力。

使用chmod命令修改基础权限

chmod(change mode)是Linux中最常用的权限修改命令,支持符号法和数字法两种方式,可直接删除或调整权限。

符号法(直观易用)

符号法通过[ugoa][+-=][rwx]格式操作,

  • u(用户)、g(用户组)、o(其他用户)、a(所有用户,即ugo);
  • (添加权限)、(删除权限)、(设置精确权限)。

示例

  • 删除文件test.txt的“其他用户”写权限:
    chmod o-w test.txt

    原权限-rw-r--r--修改后为-rw-r--r--(其他用户失去写权限)。

  • 删除用户组“执行”权限并覆盖原有权限:
    chmod g=rx test.txt

    若原权限为-rwxrwxr--,修改后为-rwxr-xr--(用户组仅保留读和执行)。

数字法(高效精准)

数字法通过组合4(r)、2(w)、1(x)直接设置权限,删除权限时需重新计算目标权限值。

linux如何删除权限

示例

  • 文件权限为755rwxr-xr-x),删除“其他用户”的写权限(原权限包含r=4、x=1,共5,去掉w=2后仍为5):
    chmod 754 test.txt  # 修改为rwxr-xr--
  • 递归删除目录project/下所有文件的“用户组”写权限:
    chmod -R g-w project/

常见权限组合与删除效果对比

权限数字 权限符号 含义 删除“用户组”写权限后 删除“其他用户”执行权限后
644 rw-r–r– 用户读写,其他只读 rw-r–r– rw-r–r–
755 rwxr-xr-x 用户可读写执行,其他可读执行 rwxr-xr– rwxr-xr–
777 rwxrwxrwx 所有用户完全权限 rwxr-xrwx rwxrwxr–

通过修改所有者和所属组“间接删除权限”

若需彻底删除某用户的权限,可通过chown(change owner)修改文件所有者,或chgrp(change group)修改所属组,使目标用户失去操作权限。

修改文件所有者

chown newuser test.txt  # 将文件所有者改为newuser,原用户权限失效

修改所属组

chgrp newgroup test.txt  # 将所属组改为newgroup,原用户组权限失效

递归修改目录权限

chown -R newuser:project/  # 递归修改目录及其下所有文件的所有者

ACL(访问控制列表)精细权限管理

当基础权限无法满足需求(如需为特定用户单独删除权限)时,可使用ACL(Access Control Lists),ACL支持为用户、用户组、默认角色设置独立权限,覆盖基础权限位。

安装与启用ACL

sudo apt install acl  # Debian/Ubuntu系统安装
sudo mount -o remount,acl /  # 确保分区支持ACL(通常默认支持)

删除特定用户权限

setfacl -m u:user1:--- test.txt  # 删除用户user1的所有权限(rwx均删除)
setfacl -x u:user1 test.txt      # 删除用户user1的ACL条目(恢复默认权限)

递归删除目录ACL权限

setfacl -R -m g:developers:-- project/  # 删除用户组developers对目录下所有文件的写和执行权限

查看ACL权限

getfacl test.txt

特殊权限处理

Linux还支持SUID、SGID、Sticky Bit三种特殊权限,需单独处理才能“删除”其效果。

SUID(4):删除用户执行权限

SUID使用户以文件所有者身份执行文件(如/usr/bin/passwd),删除需使用chmod

chmod u-s test.txt  # 删除SUID权限

SGID(2):删除用户组执行权限

SGID使目录下新建文件继承所属组权限,删除方式:

chmod g-s project/  # 删除SGID权限

Sticky Bit(1):删除其他用户删除权限

Sticky Bit(如/tmp)防止其他用户删除他人文件,删除方式:

linux如何删除权限

chmod -t project/  # 删除Sticky Bit权限

实际案例:删除不同场景下的权限

案例1:禁止普通用户修改系统配置文件

文件/etc/config.conf权限为644,需删除“其他用户”写权限:

sudo chmod o-w /etc/config.conf

案例2:限制用户组对共享目录的删除权限

目录/shared权限为775,需删除“用户组”的写权限(防止用户组成员删除文件):

sudo chmod g-w /shared

案例3:使用ACL禁止特定用户访问数据

用户hacker需被禁止访问/data/secret.log

sudo setfacl -m u:hacker:--- /data/secret.log

相关问答FAQs

问题1:Linux中“删除权限”和“删除文件”有什么区别?
解答:“删除权限”是通过修改文件/目录的权限位(如chmod),限制用户对资源的操作能力(如禁止读写或执行),文件本身仍存在于系统中;而“删除文件”是通过rm命令将文件从文件系统中彻底移除,释放存储空间。chmod a-r file.txt仅删除所有用户的读权限,文件仍存在,但用户无法读取;rm file.txt则直接删除文件,无法恢复(除非通过数据恢复工具)。

问题2:为什么使用chmod删除了写权限,用户仍然无法删除文件?
解答:删除文件不仅需要文件本身的写权限,还需要所在目录的写权限和执行权限,用户对/home/user/docs/file.txt有写权限,但/home/user/docs/目录的权限为755(用户有rwx,用户组和其他用户有rx),若用户尝试删除file.txt,系统会检查用户对目录的写权限(允许创建/删除文件)和执行权限(允许进入目录),若目录权限被修改为750(其他用户无执行权限),则其他用户即使对文件有写权限,也无法删除文件,因为无法进入目录,此时需检查目录权限:ls -ld /home/user/docs/,确保目标用户对目录有wx权限。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36207.html

(0)
酷番叔酷番叔
上一篇 2025年10月5日 06:46
下一篇 2025年10月5日 07:13

相关推荐

  • linux如何清理阿里云服务器内存

    使用命令如`sync;

    2025年8月18日
    8100
  • 腾讯云服务器安装Linux后搭建网站的具体详细步骤有哪些?

    在腾讯云服务器上安装Linux系统后搭建网站,需完成环境配置、软件安装、文件部署等关键步骤,以下为详细流程:连接服务器与基础配置购买腾讯云Linux服务器(如Ubuntu 22.04或CentOS 7)后,首先需通过SSH工具连接,Windows系统可使用Xshell或PuTTY,Mac/Linux系统直接打开……

    2025年8月21日
    9700
  • 电脑睡眠模式真的不耗电吗

    在Linux系统中,”睡眠”(Sleep)通常指将计算机暂时切换到低功耗状态以节省能源,同时保持当前工作状态(如打开的程序、文档等)不被中断,这一功能对笔记本用户尤其重要,能有效延长电池续航,下面详细介绍Linux睡眠的实现方式、注意事项及常见问题解决方案,Linux睡眠的三种模式Linux支持三种主要睡眠模式……

    2025年7月5日
    10000
  • Linux如何全盘查找文件?

    在Linux系统中,全盘查找文件或内容是系统管理和日常运维中的常见需求,通过合理使用命令行工具可以高效完成,本文将详细介绍Linux全盘查找的常用方法、命令参数及实际应用场景,使用find命令:最灵活的全盘文件查找find命令是Linux下最强大的文件查找工具,支持按文件名、类型、大小、时间、权限等多种条件递归……

    2025年10月8日
    6000
  • Linux如何彻底杀死僵尸进程?

    在Linux系统中,僵尸进程(Zombie Process)是指子进程已完成执行,但其父进程未通过wait()或waitpid()系统调用来回收其进程描述符(PCB,Process Control Block),导致子进程处于“已终止但未释放”的状态,这类进程不占用CPU资源,但会占用PID(进程ID),当系统……

    2025年9月30日
    6300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信