如何同时为用户加执行权、为组去写权?

权限基础概念

  1. 权限类型

    • 读(r):查看文件内容或目录列表
    • 写(w):修改文件或增删目录内容
    • 执行(x):运行程序或进入目录
    • 数字表示r=4, w=2, x=1(如 rwxr-xr-- = 754
  2. 权限对象

    • 用户(Owner):文件创建者
    • 组(Group):共享权限的用户组
    • 其他(Others):系统所有其他用户

查看权限

使用 ls -l 命令查看:

$ ls -l /home/example.txt
-rw-r--r-- 1 user group 1024 Jan 1 10:00 example.txt
  • -rw-r--r--
    • 首位 表示文件(d 为目录)
    • 后续三组:用户(rw-)、组(r–)、其他(r–)

修改权限(chmod命令

方法1:符号模式(直观)


# 目录递归设置:用户读写执行,组读执行,其他无权限
$ chmod -R u=rwx,g=rx,o= private_dir/

方法2:数字模式(高效)

# 设置 example.txt 为 rw-r-----(用户读写,组读,其他无)
$ chmod 640 example.txt
# 目录递归设置 755(用户rwx,组和其他rx)
$ chmod -R 755 public_dir/

修改所有者和组

  1. 更改文件所有者(chown)

    # 将文件所有者改为 newuser
    $ sudo chown newuser example.txt
    # 递归修改目录所有者及组
    $ sudo chown -R newuser:newgroup /data/
  2. 更改文件所属组(chgrp)

    $ sudo chgrp developers project.conf

设置默认权限(umask)

  • umask值 决定新建文件的默认权限(如 umask 022 使文件权限为 644,目录为 755
  • 永久生效:编辑 /etc/profile 或用户 ~/.bashrc

高级权限设置

  1. SUID(Set User ID)

    • 文件运行时以所有者身份执行
      $ chmod u+s /usr/bin/script.sh  # 设置SUID(数字模式4000)
  2. SGID(Set Group ID)

    • 目录中新文件继承父目录组
      $ chmod g+s /shared/  # 设置SGID(数字模式2000)
  3. 粘滞位(Sticky Bit)

    • 仅文件所有者可删除目录内文件(如 /tmp
      $ chmod +t /public_upload/  # 设置粘滞位(数字模式1000)

安全实践建议

  1. 最小权限原则:用户只赋予必要权限(避免 777
  2. 关键目录权限
    • /etc/755(root所有)
    • 用户家目录:700
  3. 定期审计
    # 查找全局可写文件
    $ find / -type f -perm -o+w -exec ls -l {} \;

权威参考来源

  • Linux官方文档:The Linux Documentation Project
  • POSIX标准文件权限规范(IEEE Std 1003.1)
  • Red Hat系统管理指南(Red Hat Enterprise Linux Documentation)
  • Ubuntu社区维基:File Permissions

通过精确控制权限,可有效隔离用户操作空间,降低误操作或恶意行为风险,建议结合业务场景设计权限策略,并定期审查关键文件权限设置。

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

(0)
酷番叔酷番叔
上一篇 2025年7月13日 08:26
下一篇 2025年7月13日 08:43

相关推荐

  • 平板如何安装linux

    安装 Linux 需先确认是否支持,若支持可下载适配镜像

    2025年8月13日
    15900
  • 如何创建快照防止数据丢失?

    Linux系统如何实现“一键恢复”:详细指南在Linux系统中,虽然没有原生的“一键恢复”按钮,但通过合理的备份策略和工具组合,可以实现高效的系统恢复,以下是几种主流方案,兼顾安全性与易用性:Timeshift:最接近“一键恢复”的图形化工具原理:基于rsync或Btrfs快照,定期备份系统状态,适用场景:系统……

    2025年7月27日
    15500
  • linux 如何安装deb包

    在Linux系统中,尤其是基于Debian和Ubuntu的发行版,.deb是最常见的软件包格式之一,它是一种二进制包,包含了软件运行所需的程序文件、配置信息、依赖关系说明等,用户通过安装deb包可以快速部署软件,而无需手动编译源代码,本文将详细介绍Linux系统中安装deb包的多种方法、操作步骤及注意事项,帮助……

    2025年9月24日
    15300
  • Linux Makefile如何执行?

    在Linux系统中,Makefile是自动化构建的核心工具,它通过定义目标文件、依赖关系和生成规则,简化了编译、链接等重复性操作,Makefile的执行过程本质上是make工具读取并解析Makefile文件,根据依赖关系判断哪些文件需要重新生成,并执行对应的命令,下面详细说明Makefile的执行流程、关键要素……

    2025年9月24日
    13500
  • Linux下如何用命令将日期时间显示出来?

    在Linux系统中,日期和时间的显示与管理是日常运维和脚本编写中的基础操作,Linux提供了多种命令和工具来查看、格式化及设置系统时间,其中最常用的是date命令,此外还有timedatectl、hwclock等工具用于更高级的时间管理,本文将详细介绍Linux中显示日期时间的方法,包括基本命令、格式化选项、时……

    2025年8月25日
    15300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信