anu*_*rag 4 security shell-script
我团队中的大多数人都有 sudo 访问权限。但我仍然希望他们在执行 sudo su 之前确认。如果用户按 Y,则允许他以 root 身份返回到他自己的主目录。我尝试了下面的代码,但是当用户按下任何其他键时,他仍然可以以 root 身份登录。请帮忙
!/bin/bash
echo -e "You are entering into high security env."
echo -e "If You are still not sure about the purpose, please logout of root user immediately."
echo -e "Contact admin immediately in case of any doubt."
sleep 1
echo -e "Press Y if you still want to enter as a root user"
read ch
case $ch in
'Y'|'y' )
echo -e "Risk is all yours. PT team welcome you here."
;;
*)
bash /root/.bash_logout
exit
;;
esac
Run Code Online (Sandbox Code Playgroud)
显然令人担忧的是,如此多的用户拥有 sudo 访问权限。
与其重新发明轮子,而且因为 root.profile只在执行 时运行sudo su -,而且因为 sudo 的别名不是很方便,而且是预先打印的,所以我推荐一种更标准的方法。
该/etc/sudoers配置有一个选项可以永久保留每个用户第一次使用它时收到的默认警告。
我们相信您已经收到了当地系统管理员的常规讲座。通常归结为以下三点:
Run Code Online (Sandbox Code Playgroud)#1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility.根的密码:
为了让它始终打开,您可以在/etc/sudoers.d/privacy其中创建一个文件:
Defaults lecture = always
Run Code Online (Sandbox Code Playgroud)
如果要与当前用户一起尝试,则必须先注销。
默认消息在 sudo 源代码中,如果您想更改它,则必须重新编译 sudo。我反对这个想法;如果你坚持,你必须从 apt-src 编译包,然后固定/冻结它,因为它不会被随机更新,而只能手动更新。
作为对您的要求的补充,我强烈建议您开始记录人们的行为,尤其是当他们可以不受限制地sudo访问时。
如果您添加到您的/etc/bash.bashrc:
readonly PROMPT_COMMAND='history -a >(logger -t "commandlog $USER[$PWD] $SSH_CONNECTION")'
Run Code Online (Sandbox Code Playgroud)
这会将所有用户命令记录到 syslog。
我会将syslog日志配置为将日志转发到锁定的中央系统日志服务器,因此如果发生黑客攻击或流氓系统管理员,他们将无法篡改证据。