如何阻止 root 运行程序

如何阻止 root 运行程序

我想阻止我的根用户运行某些可以更改文件权限的应用程序,从而阻止普通用户再次运行这些应用程序。

例如,如果我使用 sudo 改为 root 身份,然后从命令提示符运行 thunderbird,它会更改我的主目录/配置文件中的文件的权限,因此我不能再以普通用户身份运行它;我想要做的是阻止 root 运行 thunderbird,从而阻止这个用户错误重复发生。

有什么建议么?

澄清,

如果我有很多管理工作要做,我会使用“sudo -s”,它会给我一个 root shell,但每年只有一次,我会自食其果。

答案1

我相信这是一个阻止愚蠢用户搬起石头砸自己脚的案例,所以没有简单的方法来做到这一点。能力越大,责任越大,最好学会不要太频繁地使用 sudo -s。

话虽如此,我将在 thunderbird 周围包装一个 bash 脚本,该脚本使用 whoami 或 $SUDO_USER 检查用户名,如果是管理员则中止。这不是一个通用的解决方案,但它会在这种孤立的情况下有所帮助。

答案2

我习惯使用sudo su -显眼的提示符打开一个额外的 root 访问权限会话。这样可以防止我用 sudo 做蠢事。

答案3

打开程序的源代码,找到main()并添加以下行

if (geteuid() == 0) {
    fprintf(stderr, "Access by root is disabled.\n");
    exit(255);
}

重新编译并安装。

答案4

如果您已thunderbird在本地安装,位于您的主目录的某个位置,那么您可以更改权限,500以便只有您可以执行该程序。

在可执行文件上运行此命令

chmod 500 thunderbird

另外,正如 TrailRider 所说,不要通过前缀来运行程序sudo,因为它可能会危险的thunderbird。您可以通过将目录的所有权更改为您的用户名来修复权限。

相关内容