![是否有理由以 root 身份安装软件,而不是以 sudoer 身份使用 sudo 安装软件?](https://linux22.com/image/508321/%E6%98%AF%E5%90%A6%E6%9C%89%E7%90%86%E7%94%B1%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BB%A5%20sudoer%20%E8%BA%AB%E4%BB%BD%E4%BD%BF%E7%94%A8%20sudo%20%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%EF%BC%9F.png)
我正在设置一个运行 Ubuntu 服务器版的新服务器,但我不确定以 root 身份安装大多数基本软件与使用 sudo apt-get install 以管理员用户身份安装基本软件之间有什么区别。
首先,我不确定以 root 身份安装软件后,以用户身份运行软件时是否需要 sudo 访问权限(例如,如果我以 root 身份安装 git)。另一方面,如果我以用户身份安装软件,我可以想象我将来创建的其他用户将无法使用该软件。
这里的最佳做法是什么?
答案1
这取决于您的安装方式。如果您使用 sudo 调用 apt/dpkg 来安装东西,那么无论哪种方式都不会有什么区别。APT/DPKG 会做正确设置所需的一切。
如果您自己编译东西,则您的用户帐户中的某些环境设置可能会指导应用程序的安装方式。例如,当您使用 sudo 时,您的 $HOME 仍将指向您的非特权帐户的主目录。如果编译/安装完全依赖于 $HOME,那么事情可能会变得一团糟。编译/构建脚本出现问题并不常见,我只在一个非常不起眼的包上看到过这个问题。
答案2
只是想补充一下 Zoredache 所说的内容。
我使用 sudo 时遇到的一个问题是,使用它通过make install
命令从源代码构建内核模块。构建本身可以运行,但由于某种原因无法安装模块。要么是 make 脚本中有时会放弃权限,要么是环境问题。
但使用 apt/dpkg 和相关实用程序应该没问题。当与 apt/dpkg 或任何其他系统管理活动一起使用时,Sudo 确实有助于记录操作,所以这是使用 sudo 的一个原因。