我正在设置一个运行 Ubuntu Server Edition 的新服务器,我不确定以 root 身份安装大多数基本软件与使用 sudo apt-get install 以管理员用户身份安装基本软件之间有什么区别。
一方面,我不确定在以 root 身份安装软件后,在以用户身份运行软件时是否需要 sudo 访问权限(例如,如果我以 root 身份安装 git)。另一方面,如果我以用户身份安装软件,我可以设想将来我创建的其他用户无法使用它。
这里的最佳做法是什么?
我正在设置一个运行 Ubuntu Server Edition 的新服务器,我不确定以 root 身份安装大多数基本软件与使用 sudo apt-get install 以管理员用户身份安装基本软件之间有什么区别。
一方面,我不确定在以 root 身份安装软件后,在以用户身份运行软件时是否需要 sudo 访问权限(例如,如果我以 root 身份安装 git)。另一方面,如果我以用户身份安装软件,我可以设想将来我创建的其他用户无法使用它。
这里的最佳做法是什么?
这取决于您的安装方式。如果您使用 sudo 调用 apt/dpkg 来安装东西,那么这两种方式都不应该有任何区别。APT/DPKG 做了它需要做的一切来正确设置。
如果您自己编译东西,那么您的用户帐户中的某些环境设置很可能会指导应用程序的安装方式。例如,当您使用 sudo 时,您的 $HOME 仍将指向您的非特权帐户的主目录。如果编译/安装完全依赖于 $HOME,那么事情可能会变得一团糟。不过,编译/构建脚本出现问题并不常见,我只在一个非常不起眼的包上看到过这个问题。
只是为了补充 Zoredache 所说的话。
我在使用 sudo 时遇到的一个问题是使用它通过
make install
命令从源代码构建内核模块。构建本身可以工作,但由于某种原因无法安装模块。要么它有时会在 make 脚本中删除权限,要么是环境问题。但是使用 apt/dpkg 和相关的实用程序应该没关系。当与 apt/dpkg 或任何其他系统管理员活动一起使用时,Sudo 确实有助于记录这些操作,因此这是使用 sudo 的原因之一。