为什么我不能以该用户身份使用 sudo 命令?

为什么我不能以该用户身份使用 sudo 命令?

我不是系统工程师(我更像是软件开发人员)。我在 Linux Centos 系统上尝试部署应用程序时遇到以下问题。

作为第一个操作,我需要安装 Java 并执行一些初步检查,安装一些工具。在此初步阶段,我执行了以下命令:

sudo yum install redhat-lsb-core 

我得到了一个类似这样的错误:

USERNAME is not in the sudoers file. This incident will be reported

所以我怀疑这个用户不是root用户或者不允许进入/etc/sudoers文件。是吗?我可以检查什么来确认这个嫌疑犯?

使用此用户我还尝试执行以下操作:

cat /etc/sudoers

我得到了:

cat: /etc/sudoers: Permission denied

演出:

grep 'x:0:' /etc/passwd

我获得了:

[email protected] [~]# grep 'x:0:' /etc/passwd
root:x:0:0:root:/root:/bin/bash

因此我认为只有一个 root 用户,而不是我正在使用的用户。

那么,您是否认为唯一的解决方案是要求处理该服务器的人员授予我执行sudo命令的权限?

答案1

如果您不在文件中/etc/sudoers,那么您就无法以 身份运行命令sudo

也就是说,如果您是软件开发人员但不在文件中/etc/sudoers,只需让服务器管理员安装您需要安装的软件包。

你的问题实际上是XY问题;您似乎不需要sudo像您想安装的那样拥有访问权限redhat-lsb-core

root了解了这一点,如果您只要求服务器上的人员运行以下命令可能会更好:

 yum install redhat-lsb-core

正如你在问题中明确指出的那样:

“我不是系统工程师(我更像是软件开发人员)。”

root除非你知道你sudo在服务器上做什么,否则确实需要访问sudo权限,那么最好让知道如何处理root该服务器上的进程的人来处理这些事情。

但至于sudo访问权限的具体细节,root用户需要将您指定sudoer/etc/sudoers

无需执行任何其他操作。基本用户/etc/sudoers默认不包含在内,原因显而易见:如果每个人都包含在文件中/etc/sudoers,那么他们都只是相当于,root那么有什么好处呢?

答案2

系统所有者(有权访问 root 的人)必须授予您以 root 身份执行任务的权限。sudo是一个 root 委派工具。root 可以将特定任务委派给用户,或向用户(或组)授予一般 root 访问权限。

如果普通用户能够授予自己 root 权限,那么这将是一个巨大的安全问题。这就是为什么/etc/sudoers只有 root 才能编辑的原因。哦,使用visudo而不是直接编辑该文件。

相关内容