这是一个关于 *nix 的设计选择的问题,而不是如何避免它。
要求 root 访问权限来安装大多数软件包的目的是什么?要求您使用 root 似乎是一个潜在的安全漏洞,因为大多数软件包不需要修改内核或需要 root 权限才能运行。如果目的只是为所有用户在每台机器上安装一次软件包以节省空间,那么为什么不为此目的设置一个不同的非 root 用户呢?
更新:我在这里假设没有 root 访问权限安装的软件包不会安装到受 root 保护的目录中,而是安装在其他地方。
在我安装 Linux Mint 时...我创建了一个用户配置文件...然后在安装完成后我尝试安装 NASM 但在执行 make install 命令后它无法创建目录和错误消息“无法创建目录...权限被拒绝”出现。
我注销了在登录屏幕中输入 root 的帐户,然后系统启动到 root 用户......在此之后,make install 命令起作用并且安装成功。那么为什么在安装过程中创建的用户不是 root 用户呢?
在 Linux 系统上,人们普遍认为最好的做法是仅在需要管理权限的情况下使用 root 帐户,或者完全禁用它并仅依靠sudo完成任何需要提升权限的任务。
现在,虽然我可以在实际的多用户系统上看到这种思维方式的好处,其中 root 帐户的使用有可能对系统的每个用户的数据造成灾难性后果,因此应该最小化,我不在单用户桌面系统上看不到它的任何价值,因为这里的真正价值是个人数据,这些数据对普通用户帐户完全可用,因此无论如何都容易受到事故或攻击。系统文件的安全不是真正的问题。另一方面,必须为系统管理请求更高的权限是一个明显的不便。
考虑到这些,我的问题是在单用户系统上不使用 root 帐户作为主要用户帐户是否有任何其他好处/任何风险。
我有一个需要 root 权限的脚本。我必须通过 sudo 或从 uid 0 的帐户(例如 root)执行它。
如果脚本没有以足够的权限执行,那么我希望该脚本回显“以 Root 身份运行”并退出 1。
我怎样才能做到这一点?
在我的 .zshrc 中,我有启动各种程序实例的命令,比如 Mozilla Firefox 和 Evolution。我显然不想以 root 身份启动它们,所以我想在启动它们之前检查我是否是 root。我该怎么做呢?
我有一个关于 sudo 命令和 root 用户的 Linux 问题。如果我使用该su命令以root用户登录,下面两个命令有什么区别?
root> sudo ./some_executable
Run Code Online (Sandbox Code Playgroud)
和
root> ./some_executable
Run Code Online (Sandbox Code Playgroud)
有区别吗?我正在尝试使用一个可执行文件,并注意到该可执行文件与第一个命令一起工作正常,但第二个命令失败,说明我没有以 root 身份运行该命令。我一直认为 sudo/su 命令允许您以 root 权限执行命令,因此执行第一个命令将是多余的。但是,我确实注意到 root 用户在 sudoers 文件中,所以我不知道这是否是可执行文件中的错误,或者运行以 root 身份登录的命令与使用 sudo 登录的命令之间是否真的有区别?
我发现通过以 root 身份登录来管理我的整个服务器非常方便。
但是,CSF 告诉我,允许通过 root 登录 FTP 是“相当大的风险”,我在 google 上搜索的其他网站也同意。
为什么会这样,我真的应该太担心吗?离开它是否可以,或者即使在我的情况下风险也会超过收益?
我在 aws 中新建了 EC2 实例,并且能够使用私钥以 EC2 用户身份登录,但想以 root 身份登录以安装软件包。无法以 root 身份切换尝试 sudo - 但它要求输入密码,我还没有为 root 创建任何密码。我被困在这里
这似乎发生在很多程序(不是全部)中。
另一个例子:如果我不使用相同的方法,apt-get 似乎无法正确安装应用程序。
如果我已经是 root,我不需要写 sudo。
这是为什么?我能做些什么来解决这个问题?