开发者社区 问答 正文

云服务器 ECS Linux 保存用户登录操作命令记录是什么


云服务器 ECS Linux 如果要保存用户登录操作记录,则可以通过在 /etc/profile 进行相关配置来实现。本文对此进行简要说明。
在  /etc/profile 最下方添加以下信息,唯一修改的地方就是 LOG_DIR 对应的目录位置,默认或根据需要保存的目录进行相应修改即可。
添加后需要执行 source /etc/profile 使其生效。LOGIP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`LOG_DIR=/var/log/historyif [ -z $LOGIP ]thenLOGIP=`hostname`fiif [ ! -d $LOG_DIR ]thenmkdir -P $LOG_DIRchmod 777 $LOG_DIRfiif [ ! -d $LOG_DIR/${LOGNAME} ]thenmkdir -P $LOG_DIR/${LOGNAME}chmod 300 $LOG_DIR/${LOGNAME}fiexport HISTSIZE=4096LOGTM=`date +"%Y%m%d_%H%M%S"`export HISTFILE="$LOG_DIR/${LOGNAME}/${LOGIP}-$LOGTM"chmod 600 $LOG_DIR/${LOGNAME}/*-* 2>/dev/null
修改示例:

说明:

  • 此日志需要重新登录后才可以看到。
  • /var/log/history就是日志保存目录,此目录下的 root 目录保存的是 root 用户的操作记录。
  • 文件名称 123.118.247.191-20150928_213321 代表登录 IP 为 123.118.247.191 登录日期为 2015年09月28日21点33分21秒,里面记录的就是登录后执行的操作命令。

日志输出示例:


如果问题还未能解决,您可以到阿里云社区进行 免费咨询,或联系 云市场商家寻求帮助。

展开
收起
boxti 2017-10-23 17:06:53 2048 分享 版权
阿里云 AI 助理回答

您提到的方法是通过修改Linux系统下的/etc/profile配置文件来实现用户操作记录的保存。这个脚本主要做了以下几件事:

  1. 获取登录IP和用户名:首先通过who -u am i命令获取当前登录用户的详细信息,然后使用awksed提取IP地址并去除括号,如果无法获取IP,则默认使用主机名。
  2. 设置日志目录:定义了日志保存的根目录为/var/log/history,并根据需要创建相应的目录结构。对于每个用户,会在其用户名下创建以IP地址和时间戳命名的文件来存储历史命令记录。
  3. 配置历史记录大小和文件:通过HISTSIZE环境变量设置了命令历史记录的数量上限,并将每条命令的历史记录文件路径设置为动态生成的,包含用户名、IP地址和时间戳。
  4. 权限设置:确保日志目录和文件具有正确的访问权限,比如日志目录对所有用户可读写执行(777),但用户的个人命令历史目录权限被收紧为仅属主可读写执行(300),且之后对生成的日志文件进行600权限设置,即只有属主有读写权限。

请注意,这种方法虽然可以记录用户的操作命令,但是直接给予/var/log/history 777权限可能会带来安全风险,因为这允许任何用户读写此目录。在生产环境中,应更加谨慎地管理权限,可能需要调整为更严格的权限设置,例如只允许特定用户或组访问这些日志。

此外,这种方法记录的是基于shell会话的操作,对于非交互式的SSH会话或其他后台服务的操作可能不会被捕获。为了全面审计系统活动,考虑结合使用其他系统日志(如/var/log/auth.log用于认证相关事件)和专门的审计工具(如auditd)。

如果您在阿里云ECS实例上实施此类日志记录策略遇到问题,或者需要进一步增强系统的监控与审计能力,可以通过阿里云社区寻求帮助,也可以考虑使用阿里云提供的安全产品和服务,如云安全中心(Security Center)来加强系统的安全监控和日志审计功能。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答