Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定Redhat Linux版本_Linux_Release_Redhat - Fatal编程技术网

确定Redhat Linux版本

确定Redhat Linux版本,linux,release,redhat,Linux,Release,Redhat,如何确定运行的是哪个RedHatLinux版本 以下是我读到的: /etc/redhat release文件包含该版本,但任何人都可以篡改该文件 人们说uname命令,但您可以在Redhat上安装任何内核 如果我运行的是redhat 5.1,有人用5.2或5.x对其进行了升级,那么什么决定了redhat的版本 甚至lsb_发行版-aread/etc/redhat发行版文件 如果“任何人”对您的计算机拥有root访问权,可以更改/etc/redhat版本或安装备用内核,那么您很可能会遇到比确定

如何确定运行的是哪个
RedHat
Linux版本

以下是我读到的:

  • /etc/redhat release
    文件包含该版本,但任何人都可以篡改该文件
  • 人们说
    uname
    命令,但您可以在Redhat上安装任何内核
如果我运行的是redhat 5.1,有人用5.2或5.x对其进行了升级,那么什么决定了redhat的版本

甚至
lsb_发行版-a
read/etc/redhat发行版文件

如果“任何人”对您的计算机拥有root访问权,可以更改/etc/redhat版本或安装备用内核,那么您很可能会遇到比确定系统的redhat版本更大的麻烦

只需使用/etc/redhat release指出的值,或者更好地使用lsb_release的输出,因为这正是它们的目的

由于“任何人”都可以对您的系统执行任何操作,因此没有任何其他机会。

请尝试以下命令:

rpm-qa | grep发布
例如,在我的机器上,我得到了这个

redhat-release-workstation-6Workstation-6.4.0.4.el6.x86_64


您可以在最近的linux发行版上使用lsb_release命令。如果您发行:

lsb_release -i -r


并映射输出。2.6.9内核为RHEL4,2.6.18内核为RHEL5。如有必要,您可以将完整版本映射到Red Hat的特定更新版本(即2.6.9-89是RHEL5 U4)。

最简单的命令是:

lsb_release -d

在众多Linux发行版上使用的技巧:

cat /etc/issue

红帽6上的示例

$ cat /etc/issue
CentOS release 6.7 (Final)
Kernel \r on an \m

$ 
注意:,
/etc/os发行版
应该是查找任何操作系统版本的标准文件

  • 它使那些只想知道他们正在运行的发行版的应用程序开发人员能够检查大量的单个发行版文件
  • 它提供了“漂亮”的名称(即向用户显示的名称)和机器可解析的版本/操作系统标识符(即用于构建系统)
  • 它是可扩展的,如果需要,可以很容易地学习新的领域
看看它

:

试一试

对于最近的linux机器

lsb_release -d

对于今天或将来阅读本文的人:
正在运行的内核版本是您的RedHat版本。可能安装了其他版本,但未运行。
因此,如果机器上安装了RedHat 5.1、5.2和5.x,一次只能运行1个。这是在系统启动uop时启动的版本。要确定实际运行的版本,请使用
uname
命令:
uname-r

这将返回内核版本号。 对于RedHat 5,它将是2.6.18-[某个东西]
相对湿度5.1为2.6.18-53
相对湿度5.2为2.6.18-92

要将内核版本号转换为Redhat版本号,请参见以下链接:

文件
/etc/redhat release
是获取供应商版本(包括5.X)的标准方法。我认为你不应该忽视这一点。当然,您可以使用其他软件的各种技巧来显示当前版本的操作系统,但无论如何,其中许多都在解析/etc文件。如上所述,您可以使用rpm查询来获取版本。获取此类信息的另一种方法:
rpm-q-release

顺便说一句,我同意上面的评论,如果有人可以篡改标准/etc/redhat发行版文件或其他系统配置文件,那么了解版本的方式是最简单的问题


此外,由于RHEL 7.X版本,您还可以尝试
hostnamectl | grep“操作系统”

,这不是一个棘手的问题。RedHat将该版本放入
/etc/RedHat release
。如果有人篡改该文件,您就是一个糟糕的系统管理员,因为实际上除了root之外,没有人能够更改该文件。为什么您想知道运行的是哪个版本的RedHat?决定版本的因素取决于您想知道的原因。(例如,如果您想知道它将报告什么作为其版本,那么您确实需要查看
/etc/redhat release
。如果您想知道它是否在其发布流中运行最新的内核,那么您确实需要内核版本。)同意,我只是想知道一下。。并试图排除所有可能性。我的安全团队问这个问题,不是我。他们想确认所有的可能性给某人一台机器的根访问权就像给他们你房子的钥匙或其他东西。你不会只把房子钥匙给你信任的人吗?为什么您不能信任那些您已通过
/etc/redhat release
的内容授予root访问权限的人?如果你不能,那么你也不能确定运行
ls
不会运行
rm-rf~/*
@Satish,这个答案的本质,以及其他人的评论,是你应该信任(或者至少能够信任)
/etc/redhat发行版
文件内容和
lsb\u发行版
。如果您认为这些输出是不可信的,因为“任何人都可以篡改该文件”,那么您的整个系统是不可信的,因为编辑该文件需要对系统的root访问权限(如果有人将该文件更改为错误,谁能说他们没有做其他坏事?)。要么你相信这是对的,要么你需要重新考虑你的系统的安全性,如果你不能信任那些具有根访问权限的人。@Satish:Affarmative,但它将读取/where/which_文件或运行/where/which_程序,这就是我所说的更好的“可移植性”,明白了。。伙计们!无根目录无回火我可以安装任何版本的
release
rpmun幸运的是,这似乎不适用于rhel 6.x,即使安装了最新的修补程序。该版本不存在此文件,旧版本可能也不存在此文件。
# cat /etc/os-release 
NAME="Red Hat Enterprise Linux Server"
VERSION="7.0 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.0"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.0 (Maipo)"
uname -r
cat /etc/issue
lsb_release -d