记录用户命令

记录用户命令

所以我正在从事这个有趣的项目,过去 3 天我一直在尝试设置用户命令的日志记录,但似乎没有任何效果。因此,对于初学者,我使用在 docker 容器内运行的 Ubuntu 22.04。这个项目的工作方式是你有一个后端,它有一些配置的端点,当调用时会执行 linux 命令。现在我正在尝试设置一个记录器,以便管理员可以查看用户在前端执行的操作。

尝试了 snoopy,但我就是无法理解。然后我尝试了 auditd,但我甚至无法启动它。简而言之,它被识别为服务,但当我尝试使用 $service auditd start 启动它时,它就是无法启动,我不明白为什么。我尝试的最后一个是 rsyslog,它“有效”。嗯,当我运行命令 $logger 时,它会记录,但出于某种原因,无论我做什么,我都无法让它记录用户运行的所有命令。我还要提到,在我的实现中,rsyslog 未被识别为服务,但我不知道为什么。所以我必须使用 $rsyslogd 命令启动它。现在我知道记录每个命令可能不是最佳选择,但这只是一个小项目,我试图在没有数据库的情况下完成它。

所以我的问题是,是否有人遇到过类似的问题并知道如何使其工作,或者可能知道将用户命令记录到文件中的任何其他方法?

此外,由于 rsyslog 未被识别为服务,因此该解决方案不起作用:如何记录服务器上所有用户的所有 Bash 命令? 使用 systemctl 的选项也不起作用,因为它不被识别为命令。

如果有帮助的话,我的 Dockerfile 看起来像这样:

FROM ubuntu:22.04

WORKDIR /data/app

COPY ./requirements.txt /data/app/requirements.txt

RUN apt update
RUN apt install -y build-essential libssl-dev libffi-dev python3 python3-dev python3-pip
RUN apt-get update; apt-get -y install curl

RUN pip3 install --no-cache-dir --upgrade -r /data/app/requirements.txt
RUN apt install -y bash
RUN apt install sudo


SHELL ["/bin/bash", "-c"]

COPY ./endpoints /data/app/endpoints
COPY ./jsons /data/app/jsons
COPY ./models /data/app/models
COPY ./modules_taken_from_jakub_kuska /data/app/modules_taken_from_jakub_kuska
COPY ./scripts /data/app/scripts
COPY ./temp_files /data/app/temp_files
COPY ./utils /data/app/utils
COPY ./main.py /data/app/main.py
COPY ./admins ../../etc/sudoers.d/

#COPY audit.rules /etc/audit/rules.d/audit.rules

RUN useradd -mU Company_bot && echo "Company_bot:HardPassword" | chpasswd && for group in end_users CEOs Management Workers;do groupadd ${group};done && usermod -aG end_users,CEOs,Management,Workers Company_bot && useradd -mU Admin && echo "Admin:Admin" | chpasswd && groupadd administrator && usermod -aG administrator Admin

CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0" , "--port", "8005"]

相关内容