方法一、直接使用passwd命令
/bin/echo newpass|/usr/bin/passwd --stdin username
*注:该方式只适用于红帽系操作系统,比如centos,redhat等系统,在Debian系操作系统中,如Debian,Ubuntu等系统下,passwd命令没有 --stdin参数,无法完成该命令
方法二:使用chpasswd命令
上面用passwd命令的方法只能用于红帽系系统,这里提供一个可以用于Debian系系统的方法,使用chpasswd命令
/bin/echo username:newpass |chpasswd
方法三:使用python+usermod命令
usermod命令有一个-p参数,可以直接将一个已经加密得到的密文设置为系统密码
python中有个crypt的库,可以将一个字符串用DES单项加密,相对安全性较低
所以二者结合起来使用,现将我们想要的密码用crypt库加密得到密文,再用usermod 命令的-p参数修改成系统密码
def R_chpass(user,pass_): username=user passwd=crypt.crypt(pass_,'ab') os.system("usermod -p %s %s" % (passwd,username))