运行的所有系统RHEL6
所以,我的最终目标是能够拥有状态控制的pam配置(system-auth
和password-auth
)。这也不会影响可能需要在本地系统和系统基础上进行的更改。堆栈使用Pam.d
基本上我想行添加到的东西像pam_cracklib
的PAM配置文件,而不必只是简单地覆盖整个文件与当前system-auth
的file.managed
例子(不是一个完整的例子,一些项目中去除)
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass
auth requisite pam_succeed_if.so uid >= 100 quiet
auth required pam_deny.so
account required pam_unix.so broken_shadow
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=24
password required pam_deny.so
例题:
我需要行:
password requisite pam_cracklib.so try_first_pass retry=3 dcredit=-1 minlen=12 ucredit=-1 ocredit=-1 lcredit=-1 difok=3
出现,使用这些设置,上面password
线pam_unix.so
进入像这样的:
password requisite pam_cracklib.so try_first_pass retry=3 dcredit=-1 minlen=12 ucredit=-1 ocredit=-1 lcredit=-1 difok=3
password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=24
在某些情况下,pam_cracklib
可能已经存在,我可以简单地使用file.replace
状态找到pattern
为pam_cracklib
并用好线代替它。在其他情况下,可能需要添加pam_cracklib,因此file.replace
的appending
或prepending
的限制会导致问题。
另一个例子是pam_faillock.so
,它需要插入非常特定的行。 IE之前或之后的其他pam模块的重要性。
我已经考虑过咬住子弹并使用file.managed
强制执行一个统一的pam文件到我的系统,然后根据需要制定例外以保持其他功能,但这些感觉就像将自己绘制到一个角落。
有关处理特定商品位置展示位置的方法的任何建议,而不强制执行整个文件?在sed
我也可以使用()
“与逃逸的\1
,\2
沿s到保持模式的部分内容,并与newlines
组合并没有什么,我可以寻找模式和替换上面或行下方,并继续前进。但据我所知,不能用file.replace
来完成。我想我可以简单地用cmd.run
发出一个sed
命令,但是我必须为每次执行状态时都会运行的事实感到恼火。