1

我想通过命令行修改一些配置设置,例如sshd_config's UsePAM. “问题”是取决于系统,现有的配置文件要么只有一个带有设置的条目,yes要么no有两行但其中之一被注释掉,或者该设置尚不存在,依赖于默认值价值。果然我可以简单

sed -i '/^.*UsePAM/d;' /etc/sshd_config  # remove all occurrences so far
echo "UsePAM yes" >> /etc/sshd_config    # append the new value to the end

(只要不涉及任何部分),但这是相当不理想的。我可以编写一个小的 Python 程序来手动实现算法

if setting not present:
    append it to the correct section
elif setting present both commented and not:
    swap commenting if necessary
else:
    set/uncomment the single occurrence of the setting

但是有更简单的方法吗?

4

0 回答 0