云服务器 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
修改示例:
说明:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提到的方法是通过修改Linux系统下的/etc/profile
配置文件来实现用户操作记录的保存。这个脚本主要做了以下几件事:
who -u am i
命令获取当前登录用户的详细信息,然后使用awk
和sed
提取IP地址并去除括号,如果无法获取IP,则默认使用主机名。/var/log/history
,并根据需要创建相应的目录结构。对于每个用户,会在其用户名下创建以IP地址和时间戳命名的文件来存储历史命令记录。HISTSIZE
环境变量设置了命令历史记录的数量上限,并将每条命令的历史记录文件路径设置为动态生成的,包含用户名、IP地址和时间戳。请注意,这种方法虽然可以记录用户的操作命令,但是直接给予/var/log/history
777权限可能会带来安全风险,因为这允许任何用户读写此目录。在生产环境中,应更加谨慎地管理权限,可能需要调整为更严格的权限设置,例如只允许特定用户或组访问这些日志。
此外,这种方法记录的是基于shell会话的操作,对于非交互式的SSH会话或其他后台服务的操作可能不会被捕获。为了全面审计系统活动,考虑结合使用其他系统日志(如/var/log/auth.log
用于认证相关事件)和专门的审计工具(如auditd
)。
如果您在阿里云ECS实例上实施此类日志记录策略遇到问题,或者需要进一步增强系统的监控与审计能力,可以通过阿里云社区寻求帮助,也可以考虑使用阿里云提供的安全产品和服务,如云安全中心(Security Center)来加强系统的安全监控和日志审计功能。