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

权限基础概念

  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系统中,配置文件是系统运行的核心,记录了用户账户、网络设置、服务启动、硬件参数等关键信息,掌握查看系统配置文件的方法,是管理和维护Linux系统的基础能力,本文将详细介绍Linux系统中常见配置文件的存储位置、查看方式及相关工具使用,帮助用户高效获取系统配置信息,常见系统配置文件及存储位置Linux系……

    2025年9月11日
    7900
  • linux没有浏览器如何卸载

    无浏览器的 Linux 中,可通过终端使用包管理命令卸载,如 apt-get remove [软件包名](针对 Debian/Ubuntu 系)。

    2025年8月16日
    9100
  • Linux系统下如何为普通用户设置和管理文件读写执行的具体权限?

    Linux系统中,权限管理是保障系统安全与稳定运行的核心机制,合理分配普通用户权限既能满足日常操作需求,又能避免越权操作带来的风险,本文将从基础权限概念、sudo权限配置、特殊权限设置、ACL(访问控制列表)扩展四个维度,详细说明如何为普通用户分配权限,Linux基础权限管理:用户、组与文件权限Linux权限基……

    2025年10月2日
    4700
  • 在Linux系统中,如何运行Windows的bat文件呢?

    在Linux系统中直接运行Windows批处理文件(.bat)是不可行的,因为bat文件是Windows命令行环境(cmd.exe)的脚本,依赖Windows特定的命令语法和系统调用,而Linux使用不同的内核(Linux内核)和命令行解释器(如bash、zsh等),两者在命令语法、文件系统结构、进程管理等方面……

    2025年9月30日
    7300
  • 如何查看当前FTP进程是否中断?

    在Linux系统中关闭FTP服务是提升服务器安全性的重要步骤,FTP(文件传输协议)因使用明文传输密码和数据,存在较高安全风险,以下是详细操作指南,适用于主流Linux发行版(如Ubuntu、CentOS):确认当前FTP服务类型首先需确定系统运行的FTP服务类型:# 常见FTP服务名称:# – vsftpd……

    2025年6月17日
    10400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信