2026/2/8 22:45:57
网站建设
项目流程
网站建设资金筹措的方案,百度指数如何分析,修改wordpress模板,北京金融网站建设文章目录一、问题场景说明#xff08;Scenario#xff09;二、传统权限方式的分析#xff08;不使用 SGID#xff09;1. 用户与组准备2. 创建开发目录3. 使用传统权限进行尝试4. 实际测试结果#xff08;问题出现#xff09;alex 创建文件arod 尝试访问5. 传统权限的根本…文章目录一、问题场景说明Scenario二、传统权限方式的分析不使用 SGID1. 用户与组准备2. 创建开发目录3. 使用传统权限进行尝试4. 实际测试结果问题出现alex 创建文件arod 尝试访问5. 传统权限的根本缺陷三、SGID 的作用与解决方案1. 什么是 SGID目录上的含义2. 启用 SGID 并设置最终权限3. 再次测试成功alex 创建文件arod 访问文件四、为什么项目目录“必须”使用 SGID1. 不使用 SGID 的后果2. 使用 SGID 的优势3. 管理员角度的最佳实践五、总结一句话一、问题场景说明Scenario系统中存在两个用户账号alexarod特点如下两个账号各自有自己的主组同时都属于 project 这个附加组两人需要共同开发/srv/ahome目录下的项目其他用户不允许查看或访问该目录管理员目标让 alex 和 arod都能在该目录中创建、修改彼此的文件确保目录和文件的访问权限严格受控使用chmod、chgrp等命令完成配置二、传统权限方式的分析不使用 SGID1. 用户与组准备groupaddprojectuseradd-G project alexuseradd-G project arod确认账号属性idalexuid1008(alex)gid1012(alex)groups1012(alex),1011(project)idaroduid1009(arod)gid1013(arod)groups1013(arod),1011(project)说明主组alex / arod共同附加组project2. 创建开发目录mkdir/srv/ahome ll -d /srv/ahome drwxr-xr-x2root root4096Sep2922:36 /srv/ahome此时目录属主root属组root权限755其他人可读这显然不符合需求。3. 使用传统权限进行尝试管理员通常会想到把目录属组改成 project给组写权限禁止其他人访问chgrpproject /srv/ahomechmod770/srv/ahome此时目录权限为drwxrwx--- root project /srv/ahome看起来很合理alex / arod 都在 project 组其他用户无法访问4. 实际测试结果问题出现alex 创建文件su- alexcd/srv/ahometouchabcd ll abcd结果类似-rw-rw-r--1alex alex0Sep2922:46 abcd⚠️问题关键在这里文件属主alex文件属组alex主组并不是 projectarod 尝试访问su- arodcd/srv/ahome ll abcd分析arod ≠ alexabcd 的属组是 alexarod不属于 alex 组因此 arod 被当成other 即使目录权限正确文件权限已经破坏协作 arod无法修改 alex 创建的文件5. 传统权限的根本缺陷Linux 默认规则新文件的属组 创建者的“主组”这意味着多人协作目录中文件属组会被“分裂”权限管理复杂、不可控管理员需要频繁chgrp传统权限机制不适合多人项目开发目录三、SGID 的作用与解决方案1. 什么是 SGID目录上的含义当SGID 设置在目录上时该目录中创建的所有新文件和子目录自动继承目录的属组⚠️ 注意不改变属主只控制属组继承2. 启用 SGID 并设置最终权限chmod2770/srv/ahome权限含义拆解位含义2SGID7ownerrwx7grouprwx0other—查看结果ll -d /srv/ahome drwxrws---2root project4096Sep2922:46 /srv/ahomes表示SGID 已生效3. 再次测试成功alex 创建文件su- alexcd/srv/ahometouch1234ll1234结果-rw-rw-r--1alex project0Sep2922:531234✔ 文件属组projectarod 访问文件arod 属于 projectumask 002具有组写权限双方可以互相修改文件四、为什么项目目录“必须”使用 SGID1. 不使用 SGID 的后果文件属组混乱成员之间互相无法修改管理员需要频繁手动修正项目规模越大问题越严重2. 使用 SGID 的优势优点说明自动继承组文件永远属于 project权限一致不会因主组不同而失效管理成本低无需频繁 chgrp安全性高other 永久无权访问符合协作模型适合源码、脚本、配置文件3. 管理员角度的最佳实践多人开发目录标准配置chgrpproject /srv/ahomechmod2770/srv/ahome配合umask002这是Linux 项目开发环境的经典方案。五、总结一句话在多人协作的项目目录中仅依靠传统权限无法保证文件属组一致必须通过在目录上设置 SGID使新建文件自动继承项目组从而确保组内成员能够互相修改文件同时避免权限混乱。这是系统管理员配置开发环境的标准做法。