完善bash历史命令审核

自定义bash配置与优化

1. 下载bash-4.2版本源码包,修改其中的源代码重新编译安装:


wget http://mirrors.ustc.edu.cn/gnu/bash/bash-4.2.tar.gz


2. 修改源码包中的根目录下 config-top.h 文件.

#define SSH_SOURCE_BASHRC
#define SYSLOG_HISTORY

去掉以上两项的注释即可


3. 修改源码包中根目录下 bashhist.c 文件,大概在705行.


/* void
bash_syslog_history (line)
     const char *line;
{
  char trunc[SYSLOG_MAXLEN];


  if (strlen(line) < SYSLOG_MAXLEN)
    syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY: PID=%d UID=%d %s", getpid(), current_user.uid, line);
  else
    {
      strncpy (trunc, line, SYSLOG_MAXLEN);
      trunc[SYSLOG_MAXLEN - 1] = '\0';
      syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY (TRUNCATED): PID=%d UID=%d %s", getpid(), current_user.uid, trunc);
    }
}
*/
注释以上的代码,添加一下代码:
# ---------------------------------------------------------------------------------------------------------------- #
void
bash_syslog_history (line)
     const char *line;
{
  char trunc[SYSLOG_MAXLEN];
     const char *p;
     p = getenv("NAME_OF_KEY");
  if (strlen(line) < SYSLOG_MAXLEN)
    syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY: PID=%d PPID=%d SID=%d  User=%s USER=%s CMD=%s", getpid(), getppid(), getsid(getpid()),  current_user.user_name, p, line);
  else
    {
      strncpy (trunc, line, SYSLOG_MAXLEN);
      trunc[SYSLOG_MAXLEN - 1] = '\0';
      syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY (TRUNCATED): PID=%d  PPID=%d SID=%d User=%s USER=%s CMD=%s", getpid(), getppid(), getsid(getpid()), current_user.user_name, p, trunc);
    }
}
# ---------------------------------------------------------------------------------------------------------------- #


4. 编译安装,默认安装在 /usr/local/bin/ 下


./configure && make && make install



5. 用以下脚本内容重写 /root/.bashrc 文件.

# .bashrc
fcomp="/tmp/file"
authorized_keys="$HOME/.ssh/authorized_keys"
secure="/var/log/secure"
record="/var/log/login"
rsager=$(awk -vp=$PPID '/Found matching RSA key/ && $0~p {f=$NF}END{print f}' $secure)
mkdir -p $record

while read LINE
do
        echo $LINE > $fcomp
        name=$(echo $LINE|awk '{print $3}')
        nowrsa=$(ssh-keygen -lf $fcomp|awk '{print $2}')
        if [[ $rsager = $nowrsa ]];then
                NAME_OF_KEY=$name
                readonly NAME_OF_KEY
                export NAME_OF_KEY HISTFILE="$record/$name"
        fi
done < $authorized_keys
rm $fcomp

[ "$BASH_EXECUTION_STRING" ] && logger -t -bash -s "HISTORY $SSH_CLIENT USER=$NAME_OF_KEY CMD=$BASH_EXECUTION_STRING " &>/dev/null

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

6. 修改 /etc/passwd 中的登录shell

sed -i.bak 's#/bin/bash#/usr/local/bin/bash#g' /etc/passwd
mv /bin/{bash,bash.bak}
ln -s /usr/local/bin/bash /bin/bash



重新登陆了即可.


参考: http://m.oschina.net/blog/78441

我需要开发一个基于 Python 3.13.7+Django 5.2.6+MySQL 8.4 的前后端分离博客项目,需要完整的代码流程,要求如下: ## 1. 项目概述 - 开发一个功能完整、界面美观、交互友好的现代化博客系统 - 采用前后端完全分离的架构,Django 作为后端 API 服务,前端采用主流框架独立开发 - 注重用户体验和视觉设计,确保界面美观、有设计感 - 实现高性能、高可用、可扩展的系统架构 ## 2. 技术栈要求 - **后端**:Python 3.13.7,Django 5.2.6,Django REST Framework - **数据库**:MySQL 8.4,优化表结构和索引设计 - **认证**:JWT (JSON Web Tokens) 认证机制 - **前端**:React 18+,TypeScript,Ant Design 5. X,Redux Toolkit - **构建工具**:Poetry (Python 依赖管理),Vite (前端构建) - **API 文档**:Swagger/OpenAPI 自动生成文档 ## 3. 视觉设计与用户体验 - **UI 设计**:要求现代化、简约而不简单,具有良好的视觉层次感 - **色彩方案**:设计专业的配色方案,主色调选择稳重而不失活力的蓝色系或深灰色系 - **排版**:精心设计的排版系统,确保文章阅读体验舒适 - **动画效果**:添加适当的过渡动画和交互反馈,但不过度使用 - **响应式设计**:完全适配移动端、平板和桌面端 - **可访问性**:符合 WCAG 标准,支持键盘导航和屏幕阅读器 ## 4. 核心功能模块 ### 4.1 用户管理模块 - 用户注册、登录、注销功能 - 个人信息管理(头像、简介、密码等) - 角色权限控制(普通用户、作者、管理员) - 邮箱验证和密码重置功能 - 用户贡献热力图展示(类似 GitHub 贡献图) ### 4.2 博客文章模块 - 文章的 CRUD 操作,支持草稿保存 - 富文本编辑功能,支持图片、视频插入 - 文章分类和标签管理 - 文章评论系统,支持多级回复 - 文章阅读量统计和热门文章推荐 - 文章分享功能 - 文章收藏功能 ### 4.3 媒体管理模块 - 图片、视频等媒体文件的上传、管理 - 媒体文件分类和搜索 - 媒体文件预览功能 - 支持拖拽上传和批量上传 - 图片压缩和格式转换 ### 4.4 评论互动模块 - 多级评论系统,支持回复功能 - 评论点赞和踩功能 - 评论排序和筛选 - 评论通知功能 - 敏感词过滤和评论审核 ### 4.5 搜索模块 - 全文搜索功能,支持模糊匹配 - 高级筛选功能(按分类、标签、日期等) - 搜索结果排序和分页 - 搜索建议和历史记录 ### 4.6 统计分析模块 - 文章访问量统计和分析 - 用户活跃度统计 - 热门内容排行 - 系统使用情况监控 - 基于 grid 网格布局的贡献热力图,使用 54 列(周数)和 7 行(星期几)来展示用户活跃度,当用户将鼠标悬停在热力图的某个格子上时,提示框将显示日期周几和贡献次数,让用户能够更清楚地了解每一天的具体情况。 ### 4.7 系统管理模块 - 用户管理和权限分配 - 内容审核和管理 - 系统配置和参数设置 - 数据备份和恢复 ## 5. 技术架构与性能优化 - **模块化设计**:按功能模块划分 Django 应用 - **数据库优化**:合理设计表结构、索引,优化查询性能 - **API 性能优化**:实现缓存策略,减少数据库查询 - **前端性能优化**:代码分割、懒加载、资源优化 - **安全性设计**:CSRF 防护、XSS 过滤、SQL 注入防护、敏感数据加密 - **跨域处理**:配置 CORS 策略 - **错误处理**:统一的异常处理机制 - **日志系统**:完善的日志记录和分析系统 ## 6. 开发与测试环境 - **环境配置**:区分开发、测试、生产环境配置 - **版本控制**:使用 Git 进行代码管理 - **代码规范**:遵循 PEP 8 和业内最佳实践 - **测试策略**:单元测试、集成测试、端到端测试 - **CI/CD**:配置持续集成和持续部署流程 - **开发工具**:推荐使用 VSCode、PyCharm 等 IDE ## 7. 项目交付要求 - **项目文档**:详细的技术文档、API 文档和使用说明 - **源代码**:完整的前后端源代码,组织良好的项目结构 - **示例数据**:提供测试用的示例数据 - **部署指南**:详细的部署步骤和环境配置说明 - **性能报告**:系统性能测试报告 ## 8. 扩展功能 - **社交分享**:集成主流社交平台分享功能 - **SEO 优化**:针对搜索引擎的优化 - **Markdown 编辑器**:支持 Markdown 格式文章编辑 - **定时发布**:文章定时发布功能 - **主题切换**:支持深色/浅色主题切换 - **多语言支持**:国际化和本地化支持 - **RSS 订阅**:提供内容订阅功能 - **通知系统**:站内信和邮件通知 请基于以上需求,提供完整的项目开发方案以及所有相关代码文件,包括但不限于: - 源代码:提供完整的前后端源代码,组织良好的项目目录结构 - 数据库设计 - API 设计 - 前后端实现思路 - 部署方案 - 关键技术点和解决方案 - 完整详细的开发流程,确保本地成功运行
最新发布
09-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值