在Linux系统中,权限管理是保障系统安全和资源合理分配的核心机制,无论是普通用户还是系统管理员,理解如何正确获取权限都至关重要,以下内容将详细解释Linux权限机制及安全获取权限的方法,遵循最小权限原则,避免滥用导致的安全风险。
-
用户与用户组
- 用户:每个登录系统的账户(如
user1
、root
)。 - 用户组:多个用户的集合,用于批量管理权限(如
admin
组)。 - 查看当前用户:
whoami
查看所属组:groups
- 用户:每个登录系统的账户(如
-
文件权限的构成
- 读(r):查看文件内容/目录列表。
- 写(w):修改文件/在目录增删文件。
- 执行(x):运行程序/进入目录。
- 权限表示:
- 符号模式:
-rwxr-xr--
(所有者/组/其他用户的权限) - 数字模式:
755
(r=4, w=2, x=1,如7=4+2+1
)
- 符号模式:
获取权限的4种核心方法
临时切换用户身份(su
命令)
- 切换到root:
su - # 输入root密码后获得超级用户权限
- 切换到其他用户:
su - username # 需知道目标用户密码
- 安全提示:
- 退出时用
exit
返回原用户。 - 避免长期使用root会话,减少误操作风险。
- 退出时用
以管理员身份执行命令(sudo
命令)
- 临时获取root权限执行单条命令:
sudo apt update # 系统会要求输入当前用户密码
- 配置sudo权限:
- 编辑
/etc/sudoers
文件(必须用visudo
命令):username ALL=(ALL:ALL) ALL # 允许该用户执行所有命令 %admin ALL=(ALL) NOPASSWD:ALL # admin组用户免密执行
- 编辑
- 关键优势:
- 操作被记录在
/var/log/auth.log
,便于审计。
- 操作被记录在
修改文件所有权(chown
命令)
- 更改文件所有者/组:
sudo chown user:group filename # 将文件所有者改为user,组改为group sudo chown -R user:group /dir/ # 递归修改目录内所有文件
- 典型场景:
- 用户创建的文件默认属于自己,需
chown
转移给服务账户(如www-data
)。
- 用户创建的文件默认属于自己,需
修改文件权限(chmod
命令)
- 符号模式(直观):
chmod u+x script.sh # 给所有者增加执行权限 chmod go-w file.txt # 移除组和其他用户的写权限
- 数字模式(高效):
chmod 755 script.sh # 所有者rwx,组和其他r-x(常用可执行文件) chmod 644 config.cfg # 所有者rw-,组和其他r--(配置文件)
安全实践与注意事项
-
最小权限原则
- 普通用户日常操作避免使用
root
,用sudo
替代。 - 脚本或服务账户仅授予必要权限(如数据库账户无需
sudo
)。
- 普通用户日常操作避免使用
-
敏感命令的危险示例
- ❌
sudo chmod -R 777 /
:开放整个系统权限(黑客可直接篡改系统)。 - ❌
sudo rm -rf /
:递归删除根目录(导致系统崩溃)。
- ❌
-
权限诊断工具
- 检查文件权限:
ls -l filename
- 查看用户sudo权限:
sudo -l
- 检查文件权限:
Linux权限管理是系统安全的基石,通过su
、sudo
、chown
和chmod
的组合使用,可精准控制访问权限,始终牢记:
- 必要性:仅在需要时提升权限。
- 可追溯性:优先使用
sudo
而非直接登录root。 - 最小化:文件权限设置为功能所需的最低限度(如
755
而非777
)。
引用说明:
- Linux官方文档(kernel.org)
sudoers
配置手册(man sudoers
)- 《Linux命令行与Shell脚本编程大全》(Richard Blum, Christine Bresnahan著)
- 权限安全准则:CIS Linux Benchmarks(cisecurity.org)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9512.html