Linux中以一切皆文件为原则,从一个方面来讲如果掌握了系统中所有文件的权限,你就接管了整个系统。今天我们来讲讲如何检查和更改特定用户的文件和目录权限,如何设置默认的文件和目录权限,以及如何设置特殊的权限!最后,你将看到黑客对权限的理解,以及如何帮助他们利用系统!
Enjoy!
基本概念
在Linux系统中,不同用户对文件和目录的访问权限是不同的。这种访问控制机制可以:
-
让系统管理员(root用户)控制文件的访问权限 -
让文件所有者决定谁能读取、写入或执行文件 -
防止未经授权的用户访问或修改文件
用户类型与职责划分
root用户(超级用户)
-
系统中权限最高的用户 -
可以执行任何系统操作 -
拥有系统的完全控制权 -
默认属于root组 -
用于系统管理和维护
普通用户
-
权限受限的普通系统用户 -
只能执行被授权的操作 -
通常只能管理自己的文件和进程 -
需要sudo或su命令才能获取临时root权限 -
必须归属于至少一个用户组
用户组管理
用户组的概念
-
用于批量管理用户权限的机制 -
可以简化权限管理流程 -
组内用户共享相同的访问权限
用户组的分类
-
主要组(Primary Group)
-
用户创建时指定的默认组 -
每个用户必须有一个主要组
-
-
附加组(Supplementary Groups)
-
用户可以同时属于多个附加组 -
继承这些组的权限
-
用户组应用场景
-
企业环境示例:
-
财务组 -
人事组 -
技术组 -
市场组
-
-
IT环境示例:
-
开发组 -
测试组 -
运维组 -
安全组
-
用户组权限管理
-
组权限统一管理 -
新用户加入组自动继承权限 -
便于批量修改权限 -
提高权限管理效率
权限类型
Linux有三种基本权限:
-
r (read): 读取权限,允许查看文件内容 -
w (write): 写入权限,允许修改文件 -
x (execute): 执行权限,允许运行程序文件
权限查看
使用ls -l
命令可以查看文件权限:
ls -l /path/to/file
输出格式说明:
-
第1位: 文件类型(d表示目录,-表示普通文件) -
第2-4位: 所有者权限 -
第5-7位: 所属组权限 -
第8-10位: 其他用户权限
例如:
-rwxrw-r--
表示:
-
这是一个普通文件(-) -
所有者有读写执行权限(rwx) -
所属组有读写权限(rw-) -
其他用户只有读权限(r--)
修改权限
使用chmod命令
有两种方式修改权限:
-
数字方式:
chmod 764 filename
-
7(rwx)=4+2+1: 所有者完全权限 -
6(rw-)=4+2: 组用户读写权限 -
4(r--)=4: 其他用户只读权限
-
符号方式:
chmod u+x filename # 给所有者添加执行权限chmod g-w filename # 移除组用户写权限chmod o=r filename # 设置其他用户只读权限
修改所有者和所属组
-
chown命令:修改文件所有者
chown user filename
-
chgrp命令:修改文件所属组
chgrp group filename
特殊权限
Linux还有三种特殊权限:
-
SUID (设置用户ID)
-
允许用户以文件所有者的权限执行文件 -
常用于需要root权限的程序 -
使用数字4表示,如chmod 4755 file
-
SGID (设置组ID)
-
允许用户以文件所属组的权限执行文件 -
用于共享目录时很有用 -
使用数字2表示,如chmod 2755 file
-
粘滞位
-
用于控制目录中文件的删除权限 -
现代系统中较少使用 -
使用数字1表示
默认权限
-
使用umask设置新建文件的默认权限 -
umask值从默认权限中减去 -
常见默认值: -
文件:666 -
目录:777
-
-
可在.profile文件中设置个人umask值
从权限视角看系统安全
通过对Linux权限系统的深入学习,我们可以得出几个重要观点:
-
权限即控制
-
在Linux中,权限控制着系统的每个角落 -
掌握了关键文件的权限,就等同于获得了系统的控制权 -
特殊权限(如SUID、SGID)往往是权限提升的关键点
-
-
权限提升的常见路径
# 查找系统中所有设置了SUID权限的文件find / -user root -perm -4000# 检查关键目录的权限设置ls -l /etc/passwd /etc/shadow /etc/sudoers
-
重点关注区域 -
具有SUID权限的可执行文件 -
系统关键配置文件的权限 -
用户目录的默认权限设置 -
定时任务的执行权限
-
安全建议
为了保护系统免受权限相关的攻击,建议采取以下措施:
-
最小权限原则
-
为用户和程序只分配必要的最小权限 -
定期审查特殊权限文件 -
及时移除不必要的SUID/SGID权限
-
-
权限监控
-
定期检查系统中的特权文件 -
监控权限变更日志 -
关注异常的权限设置
-
-
安全配置
# 设置更安全的umask值umask 027 # 文件默认权限更严格# 定期检查特权用户列表grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0'
深度思考
理解Linux权限机制不仅关系到系统管理,更是安全评估的基础。无论是系统管理员还是安全测试人员,都需要:
-
深入理解权限机制的工作原理 -
掌握权限检查和修改的方法 -
了解权限可能带来的安全隐患 -
建立完善的权限管理制度
权限系统是Linux安全的基石,也是攻防的焦点。通过合理配置和管理权限,我们可以构建更安全的系统环境;通过深入理解权限机制,我们能更好地发现和修复系统中的安全漏洞。
我是V浪,如果你觉得文章对你有帮助,欢迎先点赞,再点再看,这会鼓励我输出更多的干货文章。
原文始发于微信公众号(HW安全之路):【权限管理】掌握Linux权限机制:一文精通文件权限与系统安全
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论