如何防止危险的 bash 命令?

WeS*_*See 7 security linux bash bashrc

无论是否使用bashsudo都会有很多陷阱。例如,当以 root 身份登录时

rm -rf ~/bin
Run Code Online (Sandbox Code Playgroud)

rm -rf /bin 
Run Code Online (Sandbox Code Playgroud)

只有一个角色,但这种差异会让你很不高兴。

为了保护自己免受此类灾难的影响,我在我的/etc/bash.bashrc(系统范围内.bashrc)中使用了它:

if [ $UID -ne 0 ]; then
    # ask me before deleting
    alias rm='rm -i'
else
    # do not delete / or prompt if deleting more than 3 files at a time
    alias rm='rm -I --preserve-root'
fi
Run Code Online (Sandbox Code Playgroud)

有了这个,我至少必须在遇到灾难之前确认删除。也许还有更危险的命令,如 rm...

什么是最危险的 bash 命令并保护自己免受日常灾难的影响?

Ale*_*lex 11

首先,永远不要使用 root 来执行日常命令。

这是让自己真正暴露在灾难中的最佳方式。

考虑到这一点,如果您使用 sudo,您实际上可以限制用户可以使用 sudo 执行的命令和命令选项。

例如,在您的 sudoers 文件中,您可以像这样使用 rm 进行限制:

myuser ALL=(root)   NOPASSWD: rm -r
Run Code Online (Sandbox Code Playgroud)

这意味着,为myuser只能使用sudo为,只能执行RM-r选项。

sudoers 文件还支持正则表达式,因此您可以真正自定义在使用 sudo 时可以执行的内容。

一个好的起点...

  • 赞成“永远不要使用 root 执行日常命令”。 (7认同)