加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 替换重要的符号链接’安全’

发布时间:2020-12-15 19:15:16 所属栏目:安全 来源:网络整理
导读:我想从bash脚本中更改符号链接的目标。问题是,符号链接是非常重要的(这是/ bin / sh,即),我将以以下方式做到: 新的目标将在删除旧的后立即可用,即不会有事情会注意到它消失, 在中间不会有变更失败,即删除符号链接的用户,也不会有新的。 我想到了两种
我想从bash脚本中更改符号链接的目标。问题是,符号链接是非常重要的(这是/ bin / sh,即),我将以以下方式做到:

>新的目标将在删除旧的后立即可用,即不会有事情会注意到它消失,
>在中间不会有变更失败,即删除符号链接的用户,也不会有新的。

我想到了两种方法。使用普通的ln:

ln -fs /bin/bash /bin/sh

或使用mv:

ln -s /bin/bash /bin/sh.new
mv /bin/sh.new /bin/sh

哪一个更适合我的需要?是否有可能其中一个会尝试替换符号链接目标而不是符号链接本身?

重命名(mv)是一个原子操作;创建新的符号链接不是(删除旧的符号链接;创建新的符号链接)。所以你应该使用mv:
$ ln -s new current_tmp && mv -Tf current_tmp current

这是一个blog post讨论这个。另外,如果你担心会发生什么,为什么不先尝试一个非关键的符号链接呢?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读