linux - 无需重启即可升级 - 实践中会出现哪些问题?

标签 linux security ubuntu upgrade

<分区>

如果您更新,在您重新启动之前会发生什么样的问题?如果您使用无人值守升级来应用安全补丁,这种情况会特别频繁地发生。

共享对象会被替换,因此程序之间可能会不同步。

重启前你能安全走多长时间?

澄清:

我所说的“程序能否彼此不同步”的意思是,一个二进制文件具有较早版本的共享对象,而新启动的实例具有较新版本的共享对象。在我看来,如果这些版本不兼容,则两个二进制文件可能无法正确互操作。

这种情况在实践中经常发生吗?

更多说明:

我的意思是安装程序通常会启动/停止依赖共享库的服务,以便他们获得新版本的 API。如果他们获得了所有依赖项,那么您可能没问题。但是人们是否经常看到安装程序缺少依赖项?

如果服务被编写为兼容所有以前的 API 版本,那么这将不是问题。但我怀疑通常没有完成。

如果有内核更新,特别是如果有不兼容的 ABI 更改,我看不出如何获得所有依赖项。我一直在寻找关于事情是否以及如何“翻倒”的经验,以及人们是否在实践中观察到这一点,无论是内核更新还是库/包更新。

是的,这可能应该放在 ServerFault 中......

最佳答案

一个可执行文件在任何时候都有两个版本;一个在内存中,一个在磁盘中。

更新时,磁盘上的那个会被替换掉;内存中的那个是旧的。如果它是一个共享对象,它会一直存在,直到每个使用它的应用程序都退出;如果它是内核,它会保留在那里直到您重新启动。

坦率地说,如果它是您要更新的安全漏洞,那么该漏洞会一直存在,直到您加载(希望如此)修补版本。所以如果它是一个内核,那么在你重新启动之前你是不安全的。如果它是共享对象,则重新启动可确保安全。

基本上,我认为这取决于漏洞的类别。如果是安全的,请重新启动受影响的任何内容。否则,好吧,除非该错误对您产生不利影响,否则我不会担心。如果是内核,我总是重新启动。

关于linux - 无需重启即可升级 - 实践中会出现哪些问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434302/

相关文章:

html - 使用本地存储中的 API key 保护我的网站

postgresql - Airflow "Something Bad Has Happened"错误 : Session Table does not exist

ubuntu - 如何默认关闭geany消息窗口?

linux - 如何理解 pid() 和 new_pid 在执行 forktracker.stp 时是相同的值?

java - JBoss AS7 仅适用于 Linux 上的 http ://127. 0.0.1:8080

linux - 删除具有相似名称的文件,除了一个?

ruby-on-rails - 无法在服务器上启动 ruby​​ on rails 应用程序但在本地工作,错误的环境路径

python - 覆盖 python setuptools 中的 shebang mangling

Java版本升级

security - 确保基于 Cookie 的身份验证安全