Python 无法使用子流程在login.defs中自动搜索和更改密码老化

Python 无法使用子流程在login.defs中自动搜索和更改密码老化,python,python-3.x,linux,ubuntu,scripting,Python,Python 3.x,Linux,Ubuntu,Scripting,我正在尝试创建一个python脚本,自动在我的Linux机器上执行一些安全检查。我想使用它将login.defs中的PASS\u MIN\u DAYS 0更改为更大的数字 我已经在一个独立的.txt文件中使用了这段代码,该文件将一个简单短语从一个字符串更改为另一个字符串,但现在,当我转到login.defs时,它将无法工作。我不确定它是否与文件本身或我的代码有关 def password(): os.chdir(“/etc”) 打开('login.defs','r')作为文件: 换行符=[] 对

我正在尝试创建一个python脚本,自动在我的Linux机器上执行一些安全检查。我想使用它将login.defs中的PASS\u MIN\u DAYS 0更改为更大的数字

我已经在一个独立的.txt文件中使用了这段代码,该文件将一个简单短语从一个字符串更改为另一个字符串,但现在,当我转到login.defs时,它将无法工作。我不确定它是否与文件本身或我的代码有关

def password():
os.chdir(“/etc”)
打开('login.defs','r')作为文件:
换行符=[]
对于文件.readlines()中的word:
newline.append(word.replace(“PASS\u MIN\u DAYS”,“PASS\u MIN\u DAYS 7”))
newline.append(word.replace(“通过最长天数”、“通过最长天数90”))
newline.append(word.repalce(“PASS\u WARN\u AGE”,“PASS\u WARN\u AGE 14”))
打开('login.defs','w')作为文件:
对于换行符中的行:
file.writelines(第行)
file.close()文件
没有包含任何错误消息。如果格式不正确,请提前道歉,这是我第一次发布到stackvoverflow:)

subprocess.run(['sed'、'-i'、'/PASS\u MIN\u DAYS/c\PASS\u MIN\u DAYS 7'、“login.defs”]))
子进程运行(['sed'、'-i'、'/PASS\u MAX\u DAYS/c\PASS\u MAX\u DAYS 90'、“login.defs”])
子进程运行(['sed'、'-i'、'/PASS\u WARN\u AGE/c\PASS\u WARN\u AGE 14'、“login.defs”])
这就是我找到的解决方法

在我的文件顶部,它运行sudobash,因此权限不是问题。