Простой скрипт для аудита — кто из пользователей системы имеет доступ к bash. Полезно как отправная точка для комплаенс-проверок.
import subprocess
def check_security_policies():
report = []
# Безопаснее subprocess, чем os.popen
result = subprocess.run(["cat", "/etc/passwd"], capture_output=True, text=True)
users = result.stdout.strip().split("\n")
for user in users:
if "/bin/bash" in user:
username = user.split(":")[0]
report.append(f"User with shell access: {username}")
with open("compliance_report.txt", "w") as f:
f.write("\n".join(report))
print(f"Compliance report generated. Found {len(report)} users with shell access.")
if __name__ == "__main__":
check_security_policies()
Что делает скрипт: читает
/etc/passwd и находит всех пользователей, у которых в качестве shell прописан /bin/bash. Результат пишет в файл.Как улучшить: добавить проверку пустых паролей через /etc/shadow, сервисных аккаунтов с UID < 1000, или прикрутить вывод в JSON для интеграции с SIEM.
На реальных проектах для этого используют библиотеки типа pwd — она читает /etc/passwd нативно, без системных вызовов.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера