0

0

Linux 安全:如何对敏感信息 (密码 / token) 进行安全存储 (加密 + 最小访问)

舞夢輝影

舞夢輝影

发布时间:2025-11-19 21:57:53

|

747人浏览过

|

来源于php中文网

原创

答案是使用加密机制与最小权限控制结合保护敏感信息。首选 Hashicorp Vault 或云 KMS 实现动态密钥管理,避免明文落盘;本地场景可用 GPG 加密并设文件权限为 600,配合 chown 限制访问;通过 systemd EnvironmentFile 或容器 Secrets 注入环境变量,禁止命令行传参;运行时解密至内存,不生成明文临时文件;启用 SELinux/AppArmor 限制进程权限,审计工具监控读取行为;核心原则是数据静态加密、访问最小化、全程避免明文暴露。

linux 安全:如何对敏感信息 (密码 / token) 进行安全存储 (加密 + 最小访问)

在 Linux 系统中安全存储敏感信息(如密码、API token)需要结合加密机制和严格的访问控制,防止未授权读取或泄露。核心思路是:数据静态加密 + 最小权限访问 + 避免明文暴露。

1. 使用专用密钥管理工具(推荐方案)

不要将敏感信息硬编码在脚本或配置文件中。使用专为密钥管理设计的工具,能有效实现加密存储与访问控制。

  • Hashicorp Vault:提供动态密钥、加密即服务、身份认证集成。敏感数据不落盘明文,通过令牌或身份验证按需获取。
  • 使用方式示例:应用运行时通过本地 Vault agent 或 API 获取临时 token,而非直接读取文件。
  • KMS(如 AWS KMS / GCP Cloud KMS):结合云环境,用托管密钥加密数据密钥(data key),本地只存加密后的密文。

2. 本地加密存储 + 文件权限控制

若无法使用 Vault 或 KMS,可对敏感文件进行本地加密,并严格限制访问权限。

  • gpg 加密单个文件gpg --cipher-algo AES256 --symmetric secrets.txt 生成加密文件 secrets.txt.gpg,解密需手动输入密码。
  • 仅授权用户访问:加密文件属主设为服务账户,权限设为 600。 chmod 600 secrets.txt.gpg && chown appuser:appgroup secrets.txt.gpg
  • 运行时解密到内存:脚本中用 gpg -d 在内存中解密,避免写临时明文文件。

3. 环境变量与进程隔离

避免配置文件明文存储,通过受控方式注入敏感信息。

ImgCreator AI
ImgCreator AI

一款AI图像生成工具,适合创建插图、动画和概念设计图像。

下载
  • 使用 systemd 服务的 EnvironmentFile:指定一个 600 权限的环境文件,仅启动时加载。 PermissionsStartOnly=true 可提升安全性。
  • Docker/容器场景:使用 --env-file 指定受保护的文件,或更优地使用 Docker Secrets(Swarm)或 Kubernetes Secrets(配合 etcd 加密)。
  • 禁止进程间窥探:避免通过命令行参数传密码(ps 可见),改用环境变量或配置文件。

4. 强化访问控制(最小权限原则)

即使加密失效,也应阻止未授权访问。

  • 敏感文件所属用户应为专用低权限账户,禁止 shell 登录(/usr/sbin/nologin)。
  • 目录权限设为 700,文件设为 600,确保只有属主可读写。
  • 使用 SELinux 或 AppArmor 限制进程读取范围,即使服务被入侵也无法读取非授权路径。
  • 审计访问记录:auditctl -w /path/to/secrets.gpg -p r 监控读取行为。

基本上就这些。关键是不让敏感数据以明文长期存在,同时确保只有必要实体能在必要时访问。工具选型上,生产环境优先考虑 Vault 或云 KMS,简单场景可用 gpg + 权限控制组合。安全的核心不在加密强度,而在访问路径的收敛与监控。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6078

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

797

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1056

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1206

2024.03.01

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

249

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

494

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

398

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

436

2024.04.08

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

3

2026.01.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4.3万人学习

PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 785人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号