我试图创建一个python脚本,它会自动在我的Linux机器上执行一些安全检查。我想用它把login.defs中的PASS_MIN_DAYS 0改成一个更大的数字。
我已经在一个单独的.txt文件中使用了这段代码,该文件将一个简单的短语从一个字符串更改为另一个字符串,但现在当我转到login.defs时,它将不起作用。我不确定它是否与文件本身或我的代码有关。
def password():
os.chdir('/etc')
with open('login.defs', 'r') as file:
newline=[]
for word in file.readlines():
newline.append(word.replace("PASS_MIN_DAYS", "PASS_MIN_DAYS 7"))
newline.append(word.replace("PASS_MAX_DAYS", "PASS_MAX_DAYS 90"))
newline.append(word.repalce("PASS_WARN_AGE", "PASS_WARN_AGE 14"))
with open('login.defs', 'w') as file:
for line in newline:
file.writelines(line)
file.close()
不包含错误消息。另外,如果没有以任何方式正确格式化,请提前道歉,这是我第一次向stackvoverflow发送邮件:)
最佳答案
subprocess.run(['sed', '-i', '/PASS_MIN_DAYS/c\PASS_MIN_DAYS 7', "login.defs"])
subprocess.run(['sed', '-i', '/PASS_MAX_DAYS/c\PASS_MAX_DAYS 90', "login.defs"])
subprocess.run(['sed', '-i', '/PASS_WARN_AGE/c\PASS_WARN_AGE 14', "login.defs"])
This is the answer that i found that fixes it