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下如何搜索指定进程?

    在Linux系统中,搜索和管理进程是日常运维和开发中的常见需求,掌握多种进程搜索方法能更高效地定位问题,以下从基础到进阶介绍几种常用工具及其使用场景,ps命令:静态查看进程信息ps是最基础的进程查看工具,用于输出当前进程的静态快照,配合参数可实现灵活筛选,常用参数:aux:显示所有用户的进程,包含CPU、内存占……

    2025年10月6日
    800
  • 如何使用ps命令监控进程?

    在Linux系统中,查看进程名是系统管理和故障排查的基础操作,进程名代表正在运行的程序(如nginx、python或java),准确识别进程有助于监控资源、结束异常任务或优化性能,以下是几种专业且高效的方法:ps(Process Status)是基础进程查看工具,通过组合参数灵活筛选信息:ps -eo comm……

    2025年7月2日
    5900
  • linux如何登入到root

    Linux中,可通过切换用户su -或使用sudo -i等命令,输入root密码后

    2025年8月19日
    3000
  • 如何在Win7系统下安装Linux双系统?

    在Windows 7系统下安装Linux双系统,需提前做好准备工作,并通过U盘启动完成安装,以下是详细步骤和注意事项,帮助用户顺利完成操作,安装前准备工作备份数据:Linux安装过程会涉及磁盘分区,可能覆盖原有数据,需提前备份Win7中的重要文件至移动硬盘或云端,下载Linux镜像:选择适合新手的发行版(如Ub……

    2025年9月30日
    1400
  • Linux系统登录Oracle数据库的具体操作步骤是什么?

    在Linux环境下登录Oracle数据库是数据库管理员和开发人员日常操作的核心环节,涉及客户端工具配置、网络连接、身份验证等多个技术细节,本文将系统介绍不同场景下的登录方法,涵盖命令行工具(如SQL*Plus)和图形化工具(如PL/SQL Developer、DBeaver)的使用步骤,并说明环境变量配置、常见……

    2025年9月25日
    1700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信