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

权限基础概念

  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版安装路径通常在/opt/netease/cloudmusic 或用户指定的

    2025年8月18日
    3700
  • Linux系统下如何正确安装Java并配置好环境变量呢?

    在Linux系统中安装Java是开发、运维及企业应用中的常见需求,Java运行环境(JRE)或开发工具包(JDK)的安装方式因需求不同而有所差异,本文将详细介绍通过包管理器、手动下载安装及SDKMAN!工具三种主流方法,并涵盖环境变量配置、版本验证及常见问题解决,通过包管理器安装(适合新手,自动处理依赖)Lin……

    2025年8月29日
    5100
  • 当前用户密码?非root!

    在Linux系统中,”超级用户”(又称root用户)拥有系统的最高权限,可执行所有操作(包括修改核心文件、安装全局软件等),但滥用root权限极易导致系统崩溃或安全漏洞,请严格遵循以下专业操作指南:成为超级用户的3种安全方式方法1:临时切换root(推荐)# 或执行单条root命令sudo rm /path/t……

    2025年7月24日
    6700
  • Linux系统下如何使用ping命令测试网站连通性?

    在Linux系统中,ping命令是最基础且常用的网络诊断工具之一,它基于ICMP(Internet Control Message Protocol,互联网控制报文协议)协议,用于测试本地主机与目标主机之间的连通性、延迟以及数据包丢失情况,通过发送ICMP回显请求(Echo Request)包并等待目标主机的回……

    2025年9月30日
    3300
  • 如何在Linux系统中用C语言进行程序设计?

    Linux作为开源操作系统的代表,与C语言有着天然的紧密联系,其内核及大量系统工具均由C语言编写,在Linux环境下进行C语言程序设计,不仅能够充分利用系统的底层资源,还能深入理解操作系统的工作原理,本文将详细介绍Linux下C语言程序开发的核心流程、关键工具及编程要点,Linux下的C语言开发首先需要搭建合适……

    2025年9月21日
    4500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信