linux '--stdin'错误 -批量修改密码

Posted HumbleFish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux '--stdin'错误 -批量修改密码相关的知识,希望对你有一定的参考价值。

  虚拟机:VMware虚拟机 

  系统:Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

  看 《鸟哥的私房菜 -服务器架设篇》的时候,跟着书上敲指令的时候遇到了一个问题,批量添加用户和修改密码失败。

  shell命令如下:

    

  使用 sh运行脚本的时候出现以下错误:  

  

  实测用户和用户组都已经添加成功,但是批量修改密码的时候出现错误,不能通过。

  通过查找资料了解到,批量创建用户时一般都会用到的passwd –stdin参数,在debian/ubuntu下没有这个参数,而我使用的正是ubuntu的系统。言传ubuntu认为使用这个参数批量修改密码不安全所以没有添加到指令中。

  是不是在ubuntu的系统中就不能批量修改属性呢,显然做系统的时候不会出现这种问题。

  通过查找我找到了一个指令,能够很好的解决这个问题(在不考虑安全性的前提下)----“chpasswd”

  chpasswd是一个批量更新用户口令的命令,会从标准输入批量读取成对的用户名和密码,并使用这些信息来更新现有的一组用户,其格式为--username:password

中间用冒号隔开,不能出现空格。具体的语法操作,可以通过man查看系统内部的说明,此处只做简单的应用。

  了解到知道这个指令之后,我对脚本做了简单的修改:

  

  小做测试:

  

  用户创建成功,然后也可以使用密码登录。

  注:用户创建,脚本的编写都是在root用户下操作的,一般用户如果进行操作可能会涉及到权限问题;

    此种方法修改的密码安全性不是很好,只适合个人学习使用; 

    linux接触不深,可能对指令的了解不够透彻,如有错误和不合理的地方欢迎指正。

以上是关于linux '--stdin'错误 -批量修改密码的主要内容,如果未能解决你的问题,请参考以下文章

python subprocess.popen stdin.write

解决AttributeError:模块'pandas'没有使用command-prompt或pycharm属性'core'

序列化组件

shell脚本

golang 使用Golang访问Exec'd进程的StdIn

drf的序列化器