linux – 为什么我从不以root身份运行软件,但是经常建议为帐户提供root访问权限以运行软件?

我是一名长期技术专家,但我的工作100%都在 Windows环境中.我对许多技术问题有很好的理解,例如用户帐户管理,安全性和软件开发.

在尝试设置VPS,运行debian(这是个人项目)时,我发现了大量的教学文档,帮助我设置系统,下载源代码并编译它.

令我困惑的是,你总是不鼓励以root身份运行任何软件.似乎root应仅用于设置用户帐户和权限.但是,如果一个帐户需要访问系统必须提供的几乎所有内容,则该帐户将获得root访问权限.

如果一个帐户被授予root访问权限,那该帐户本质上不是root吗?如果这是真的,为什么我不能保持简单(因为这是一个简单的项目)并且只运行VPS根帐户中的所有内容?

我认为必须有一个很好的答案,我只是错过了它.从来没有像以root身份运行软件那样成为一个重要的既定事实似乎是违反直觉的,但建议给予重要帐户root权限.恕我直言,这似乎是一个更大的安全问题,因为现在有两个(或更多!)帐户可能被破坏,而不是只有一个root帐户.

当然,还有另一种可能性 – 我发现的许多文档(通过谷歌)是错误的.如果是这种情况,那么很遗憾的是,在非常专业(通常是清晰的)网站上提供了大量不良信息.这是一种耻辱,有点令人沮丧.

解决方法

我不知道你给“root访问权”的真正含义是什么,但通常的方法是给某人或某些东西管理控制系统的某些方面只是使用你可以微调的sudo机制只允许那些东西用户需求.

在deamons / services的情况下,存在其他方法,例如在启动或生成以其他用户身份运行的子节点之后删除root权限.

此外,还有其他方法可以实现更好的控制,但它们通常要复杂得多且容易出错(想想SELinux).这种方法的一般术语是Role Based Access Control.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...