0Pricing
Cyber Security Academy · 课时

文件权限与所有权

掌握 chmod、chown、粘滞位、SUID/SGID,以及权限如何防止未经授权的访问

文件权限与所有权 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

权限为何重要

文件权限控制谁可以读取、写入或执行文件。配置错误的权限是权限提升和数据泄露最常见的原因之一。

权限字符串解析

运行 ls -la 时,每个文件都会显示一个 10 个字符的权限字符串,例如 -rwxr-xr--。可以将其拆分为:文件类型、所有者权限、组权限和其他用户权限。

$ ls -la /etc/passwd
-rw-r--r-- 1 root root 2847 Jan 10 10:00 /etc/passwd
# -  = regular file
# rw- = owner (root) can read+write
# r-- = group can read only
# r-- = others can read only

数字(八进制)权限

权限也可以用八进制数字表示:读取=4,写入=2,执行=1。将每个类别对应的数值相加即可。

# rwxr-xr-- = 754
# rw-rw-r-- = 664 (world-readable, group-writable)
# rwx------ = 700 (private executable)

更改权限:chmod

使用 chmod 修改权限。您可以使用符号模式(u+x)或八进制模式(755)。

$ chmod 755 script.sh      # rwxr-xr-x
$ chmod u+x script.sh      # add execute for owner
$ chmod o-r secret.txt     # remove read for others
$ chmod 600 id_rsa         # SSH key: owner read/write only

更改所有权:chown

chown 命令用于更改文件的所有者和/或所属组。只有超级用户才能将所有权更改为其他用户。

$ chown user:group file.txt
$ chown root:root /etc/shadow
$ chown -R www-data:www-data /var/www/html/

特殊权限:SUID、SGID 和粘滞位

SUID(设置用户 ID)会使文件以所有者的权限运行。目录上的 SGID 表示新文件会继承该组。粘滞位可防止非所有者删除文件。

$ ls -la /usr/bin/passwd
-rwsr-xr-x 1 root root 68208 /usr/bin/passwd
# The "s" in owner execute position = SUID
# This runs as root regardless of who calls it

查找 SUID 二进制文件(权限提升)

攻击者会搜索 SUID 二进制文件来提升权限。任何存在已知漏洞或可被滥用的 SUID 二进制文件,都可能授予超级用户访问权限。

$ find / -perm -4000 -type f 2>/dev/null
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/pkexec
/bin/mount

/etc/shadow 文件

/etc/shadow 用于存储哈希后的密码,只有超级用户可以读取。如果您能够读取该文件,就可以使用 hashcat 或 john 尝试进行离线破解。

$ ls -la /etc/shadow
-rw-r----- 1 root shadow 1423 Jan 10 /etc/shadow
# Only root and the shadow group can read this

umask:默认权限掩码

umask 值会从 666(文件)或 777(目录)中减去,以设置新文件的默认权限。umask 为 022 时,新文件的权限为 644。

$ umask
0022
$ touch newfile
$ ls -la newfile
-rw-r--r-- 1 user user 0 newfile  # 666 - 022 = 644

访问控制列表(ACL)

ACL 扩展了传统的 Unix 权限模型,使您可以为单个用户设置超出所有者/组/其他用户三类权限的额外权限。请使用 getfacl 和 setfacl。

$ getfacl /var/www/html/
# file: var/www/html/
# owner: root
# group: www-data
user::rwx
group::r-x
other::r-x

不可变文件:chattr

chattr +i 命令会使文件不可变——即使超级用户也无法修改或删除它。隐匿型恶意软件会利用这一点保护自身文件。请使用 lsattr 检查。

$ chattr +i /etc/passwd   # make immutable
$ lsattr /etc/passwd
----i--------e-- /etc/passwd
$ chattr -i /etc/passwd   # remove immutability

快速检查

SUID 权限允许什么?

总结:文件权限

掌握 chmod、chown,并理解 SUID。在 CTF 和真实的渗透测试中,SUID 配置错误是最常见的超级用户权限获取途径之一。请始终检查敏感文件的权限。

常见问题解答

「文件权限与所有权」课时是免费的吗?

是的 — 「文件权限与所有权」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「文件权限与所有权」这节课中我会学到什么?

掌握 chmod、chown、粘滞位、SUID/SGID,以及权限如何防止未经授权的访问 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「文件权限与所有权」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 文件权限与所有权
  2. 用户与组管理
  3. SSH 加固与基于密钥的身份验证
  4. iptables 与 UFW 防火墙规则
← 返回 Cyber Security Academy