【问题标题】:Linux RPM install package script failure to change ownership of required fileLinux RPM 安装包脚本无法更改所需文件的所有权
【发布时间】:2013-01-05 02:40:39
【问题描述】:

测试使用 RPM 安装包 shell 脚本。

在 shell 脚本中包含 linux 命令以创建新用户并将 /etc/hosts 的所有权更改为该用户。 Shell脚本内容:

useradd bob
chown bob /etc/hosts

安装后 RPM 应该会导致:

-rw-r--r--. 1 bob root 331 Jan  4 11:13 /etc/hosts

而是在 RPM 安装完成后它仍然存在:

-rw-r--r--. 1 root root 331 Jan  4 11:13 /etc/hosts

【问题讨论】:

  • 您以什么用户身份运行脚本?
  • 这是一个糟糕透顶的主意。
  • 赞赏这不是一个狂热的想法,但我只是在尝试..

标签: linux shell installation rpm


【解决方案1】:

/etc/hostsroot 所有,因此脚本可能没有更改该文件的权限。

我不确定你是如何执行脚本的,但是如果它只是一个标准的 shell 脚本你可以试试sudo:

sudo ./my_script.sh

【讨论】:

  • RPM 安装是使用 yum 作为 root 用户进行的。该脚本是 RPM 包的内部组件,因此在 yum 安装过程中被触发。如果我正确地遵循了您的逻辑,您是否建议即使安装过程本身由超级用户执行,RPM 包本身中的脚本文件也必须具有正确的根权限?
  • 这是一种可能性。另一个是脚本没有运行或失败。也许您可以更新您的问题并包含所有相关来源(脚本和规范文件)。
【解决方案2】:

(警告:像这样更改系统级文件的所有权是一个安全问题,而不是最聪明的想法。)

您确定脚本已运行吗?您可能想要制作第一行:

useradd bob || /bin/true

或者只是

useradd bob || :

所以它总是返回true。否则rpm 将中止脚本,例如,如果用户“bob”已经存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    相关资源
    最近更新 更多