rm
诸如、kill
和之类的危险命令systemctl stop
可以隐藏在 bash 输入之外 - 即,恶意用户可以使用模块轻松地将它们隐藏在 python 脚本中os
,只需运行 python 脚本作为代理即可隐藏他们真正想要伤害的内容,以及 bash 历史记录或类似的事情只会留下他们python3 [the malicious script].py
在删除该脚本之前运行的记录以隐藏他们真正所做的事情。
我想做的是在每次执行这些关键命令时记录这些关键命令(欢迎指出超过 3 个命令的任何命令),无论它来自哪里。并且该日志不能被除 root 之外的任何用户丢弃。
在后台启动进程或将其作为systemd
服务很容易。
然而,如果我想启动一个进程来监视Linux机器上的活动,那么它就成为了攻击的目标。如果任何用户想做坏事,它会首先通过简单地执行或 来终止该进程,即使他们只是sudo
ers 或wheel
用户。kill
systemctl stop
有没有办法强制执行只能杀死的进程root
?
伙计们,只要想到连rsyslog
服务都可以被杀死,你就应该承认 Linux 确实是多么脆弱。这就像飞行员可以关闭黑匣子一样。有航空公司允许这种情况发生吗?或者是否有人给飞行员一份允许名单,以阻止他们采取任何措施来拯救飞机?当然,飞行员可以让飞机坠毁,但黑匣子会记录下来。
从安全角度来看,我关于禁止名单的提议是合法的,尽管它可能会让你感到害怕。所以不要试图责怪提出问题的人,好吗?
这真的很烦人,systemd
只回应我的服务文件配置错误,但没有具体指出错误在哪里:
/lib/systemd/system/auto_pgha.service
:
[Unit]\nDescription=PostgreSQL High Availability\nAfter=network.service\nAfter=firewalld.service\n\n\n[Service]\nType=simple\nWorkingDirectory=/etc/repmgr\nExecStartPre=/bin/bash -c 'echo -e "\\n" `date +"%Y/%m/%d %a, %X"`": STARTING \\n" >> pgha.log'\nExecStart=/bin/bash -c "python3 pg_high_availability.py &>> pgha.log"\nRestart=always\nRestartSec=3\n\n[Install]\nWantedBy=multi-user.target\n
Run Code Online (Sandbox Code Playgroud)\n在目录内/etc/repmgr
这两个命令运行得很好。但 systemd 服务只是响应了一个错误:
# systemctl start auto_pgha\nFailed to start auto_pgha.service: Unit auto_pgha.service has a bad unit file setting.\nSee system logs and 'systemctl status auto_pgha.service' for details.\n\n# systemctl status -l auto_pgha\n\xe2\x97\x8b auto_pgha.service - PostgreSQL High Availability\n Loaded: bad-setting (Reason: Unit auto_pgha.service has a bad unit file setting.)\n......\nauto_pgha.service: Unit configuration has …
Run Code Online (Sandbox Code Playgroud) 我想要延迟后台执行,对于我sleep [anyseconds] && [execution]
使用的后台延迟nohup
单独的简单例子nohup
:
nohup date &>> out.log &
当然,您可以找到date
in执行的打印结果out.log
。
但我想延迟执行,比如15秒,所以有点组合:
nohup sleep 15 && date &>> out.log &
这次它无法正常工作,sleep 15
被执行,而date
并不总是如此 - 如果您关闭终端,它不会在&&
.
出什么问题了nohup
?它屈服于&&
??