网站建设分金手指专业二五自己家的电脑宽带50m做网站服务器
网站建设分金手指专业二五,自己家的电脑宽带50m做网站服务器,莆田城市投资建设集团网站,0基础做电商从何下手《Linux系统编程》第三章通常会重点讲解 Linux 权限模型#xff08;文件权限、用户/组、特殊权限等#xff09;#xff0c;这是系统编程中最基础且最常被考察/面试的部分。
以下内容以现代主流 Linux#xff08;2025–2026 视角#xff0c;RHEL 9 / Ubuntu 24.04 / Debia…《Linux系统编程》第三章通常会重点讲解Linux 权限模型文件权限、用户/组、特殊权限等这是系统编程中最基础且最常被考察/面试的部分。以下内容以现代主流 Linux2025–2026 视角RHEL 9 / Ubuntu 24.04 / Debian 12 / Rocky 9 等整理覆盖教材中最核心的知识点 编程中真正会用到的细节。1. Linux 权限基础三元组rwx位置含义对文件含义对目录八进制值r可以读取文件内容cat、less可以列出目录内容ls4w可以修改文件内容vim、echo 可以在目录中创建/删除/重命名文件即使文件权限不允许2x可以执行文件./a.out、脚本可以进入目录cd、访问目录内文件需配合文件自身权限1最容易混淆的点面试/笔试常考对文件没有 w 也能删除文件只要对父目录有 wx 即可对目录只有 x 没有 r→ 能 cd 进去、能访问已知文件名文件但 ls 看不到内容对目录只有 w 没有 x→ 几乎没用无法 cd 进去也无法操作里面的文件2. 权限表示方式对比表示方式示例含义常用场景符号法rwxr-xr–owner:rwx group:r-x other:r–ls -l 直观显示八进制3位7547 rwx, 5 r-x, 4 r–chmod 常用八进制4位47554 SUID 755特殊权限符号法修改chmod us,g-w,or fileowner 加 SUID, group 去写, other 只读精细控制3. 特殊权限SUID / SGID / Sticky Bit—— 第三章重中之重权限八进制字符显示位置只对谁有效典型文件/目录示例实际效果说明SUID4xxxuser 的 x 位变 s / S可执行文件/usr/bin/passwd (4755)执行时进程有效 UID 文件所有者 UID通常 rootSGID2xxxgroup 的 x 位变 s / S可执行文件 目录/usr/bin/wall (2755)/tmp (常不设)文件进程有效 GID 文件所属组目录新建文件/子目录自动继承父目录的所属组Sticky Bit(SBIT / 粘滞位)1xxxother 的 x 位变 t / T仅目录/tmp (1777)目录中文件只有文件拥有者、目录拥有者、root才能删除/改名即使别人有 w字符 vs 大小写含义小写 s/t → x 权限同时存在大写 S/T → x 权限不存在很少见通常是配置错误常见真实例子2025–2026 主流发行版基本一致# SUID 典型代表-rwsr-xr-x1root root68208Dec202024/usr/bin/passwd# 允许普通用户改自己密码# SGID 例子较少见于文件常见于目录协作开发-rwsr-sr-x1roottty27248Dec202024/usr/bin/write.ul# wall/write 命令# Sticky Bit 经典drwxrwxrwt15root root4096Mar600:30 /tmp# 任何人可写但只能删自己的文件4. 常用权限管理命令速查表命令主要功能常用写法示例备注chmod修改权限chmod 4755 progchmod us,gs,ot dir支持 -R 递归chown改属主可顺带改组chown root:devops filechown -R user:group /dir普通用户只能改自己文件chgrp只改所属组chgrp developers shared_dir现在较少用chown 可同时改umask设置新建文件/目录的默认权限掩码umask 027文件默认 666-umask目录 777-umasklsattr / chattr查看/设置文件扩展属性i 不可改chattr i important.conf防误删/防改非标准权限umask 快速记忆最常见值root 默认 umask 022 → 新文件 644新目录 755普通用户默认 umask 002 → 新文件 664新目录 775共享组写5. 系统编程中常考/常犯的权限相关点C语言视角stat() / fstat() / lstat()→ st_mode 字段包含所有权限信息用 S_ISUID / S_ISGID / S_ISVTX 宏判断特殊位用 S_IRUSR / S_IWUSR / S_IXUSR 等宏判断 rwxchmod() / fchmod()系统调用而非命令chown() / fchown() / lchown()—— 注意普通用户基本无权调用access()—— 检查调用者真实身份是否有权限常用于 setuid 程序自检setuid() / setgid() / seteuid() / setegid()—— 权限降级/切换setuid 程序必备最经典的 setuid 安全陷阱不要在 setuid 程序中调用 system() / popen()永远先把 euid 降回 ruid真实用户再做危险操作6. 快速自测题第三章常考/tmp 为什么是 1777 而不是 777passwd 命令为什么要有 SUID去掉会怎样一个目录权限是 drwx–x–x用户能做什么不能做什么umask 设成 027新建文件和目录分别是什么权限如何给一个共享开发目录设置“新建文件自动属于开发组”需要我针对其中某个点展开更详细的代码示例C语言获取/设置权限、setuid程序写法、安全降权模板等还是需要解释某个具体场景的权限设计