Skip to main content

A Python tool for managing SSH PAM configurations on Linux systems

Project description

SSH PAM Manager

一个用于管理Linux系统SSH PAM配置的Python工具。

功能特性

  • 📖 配置读取: 查看当前SSH PAM配置
  • ✏️ 配置修改: 修改现有的PAM配置项
  • 配置添加: 添加新的PAM配置规则
  • 🗑️ 配置删除: 删除不需要的PAM配置
  • 🔒 安全验证: 验证PAM配置的安全性和正确性
  • 💾 自动备份: 修改前自动备份原配置
  • 🖥️ 交互界面: 友好的命令行交互界面

安装

从源码安装

# 克隆仓库
git clone https://gitee.com/liumou_site/ssh-pam-management.git
cd ssh-pam-management

# 安装到系统
pip3 install .

# 或者使用开发模式
pip3 install -e .

从PyPI安装(未来版本)

pip3 install ssh-pam-manager

使用方法

交互式界面

# 启动交互式界面
ssh-pam-manager

命令行模式

# 查看当前配置
ssh-pam-manager --view

# 验证配置安全性
ssh-pam-manager --validate

# 指定自定义配置文件路径
ssh-pam-manager --config /etc/pam.d/sshd --view

# 显示版本信息
ssh-pam-manager --version

项目结构

ssh-pam-manager/
├── src/
│   └── ssh_pam_manager/
│       ├── __init__.py          # 包初始化
│       ├── main.py              # 主入口点
│       ├── pam_parser.py        # PAM配置解析器
│       ├── pam_manager.py       # PAM配置管理器
│       ├── cli_interface.py     # 命令行交互界面
│       └── config_validator.py  # 配置验证器
├── pyproject.toml               # 现代打包配置
├── setup.py                    # 兼容性打包配置
├── README.md                   # 项目文档
└── LICENSE                     # 许可证文件

模块说明

pam_parser.py

  • PAMParser类: 负责解析PAM配置文件格式
  • 支持解析标准的PAM配置行格式
  • 处理注释和空行

pam_manager.py

  • PAMManager类: 核心配置管理功能
  • 提供配置的读取、修改、添加、删除操作
  • 自动备份机制确保操作安全

cli_interface.py

  • CLIInterface类: 用户交互界面
  • 提供菜单驱动的命令行操作
  • 支持配置预览和确认

config_validator.py

  • ConfigValidator类: 配置验证功能
  • 验证PAM配置的合法性和安全性
  • 检测潜在的安全风险

PAM配置格式

工具支持标准的PAM配置格式:

类型    控制标志    模块    参数

示例:

auth    required    pam_unix.so    nullok
auth    optional    pam_echo.so    file=/etc/issue

权限要求

由于PAM配置文件通常位于/etc/pam.d/目录下,需要root权限才能修改:

sudo ssh-pam-manager

或者:

sudo ssh-pam-manager --view

开发

设置开发环境

# 克隆项目
git clone https://gitee.com/liumou_site/ssh-pam-management.git
cd ssh-pam-management

# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate

# 安装开发依赖
pip install -e .

运行测试

# 运行基本功能测试
python -m pytest tests/

# 运行代码风格检查
flake8 src/

# 运行类型检查
mypy src/

贡献

欢迎提交Issue和Pull Request来改进这个项目。

许可证

本项目采用MIT许可证。详见LICENSE文件。

免责声明

此工具用于系统管理目的。在使用前请确保:

  1. 理解PAM配置的工作原理
  2. 在测试环境中验证配置更改
  3. 备份重要的系统配置文件
  4. 了解修改PAM配置可能带来的安全影响

作者对使用此工具造成的任何系统问题不承担责任。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ssh_pam_manager-1.0.0.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ssh_pam_manager-1.0.0-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file ssh_pam_manager-1.0.0.tar.gz.

File metadata

  • Download URL: ssh_pam_manager-1.0.0.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for ssh_pam_manager-1.0.0.tar.gz
Algorithm Hash digest
SHA256 72b6617420f07c3a29458e3a56e854b6daa62de64fc188b4032c73c878b7743a
MD5 3e690d73b7880c9ff54837abf0c2214f
BLAKE2b-256 a604309e170d6bf3efb5d9d21a56b4174bae304f5752bd0ec8001bba6c364a6c

See more details on using hashes here.

File details

Details for the file ssh_pam_manager-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ssh_pam_manager-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5756b62c5bf1c74172ca08ab143c751f5411babd20403d3d9dd15ebab84829c8
MD5 535b34c7e9cea38714d3bf325f8079fa
BLAKE2b-256 39639e2b96cd89b29366b1d88c8c274b1c25a6d86408b9d7e571f4260bee7321

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page