CentOS批量添加用户和修改密码
2017-06-24 17:47
465 查看
不得不感叹一下,网上的水军真是多,今天就搜了“linux批量修改密码”,发现网上的博客,都是一个样,我要的是sha512的密码……
使用它需要先建立一个用户账号文件,文件格式需要和passwd文件格式一样。
下面我来创建用户文件:
优点:方便快捷,不需要交互式更改密码,这样就可以在shell脚本中直接使用这个命令修改密码了
缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全的,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。另外其它的一些发行版(如Debian/Suse)所提供的passwd并不支持--stdin这个参数
chpasswd其实是通过用户输入'用户名:密码'来更改一组用户的密码,还是读取文件里的内容,文件格式也是'用户名:密码',也就成为了一个可以批量修改密码的工具。
格式1
:# echo 用户名:密码 | chpasswd
格式2:
:#cat passwd.txt | chpasswd(centos7)
:#chpasswd < passwd.txt(centos 6以前)
2.2.2chpasswd加密密码
chpasswd -e选项是可以使用加密方式来加密的,让我们先来生成密码
说明:openssl passwd用来生成MD5的加密密码。
密码虽然一样,但是如果你执行第二次,则会发现不一样,是因为它是以时间来“加盐”?
加盐就是使用一个字符串来对另一个字符串进行加密,如果使用的盐不一样,则生成的密码自然就不一样。
使用同样的"盐",则生成密码一样
注意:我们centos6以后的系统默认都是sha512进行加密的,因为使用MD5加密早就被破解了,但是使用生成的MD5也可以当做密码,是因为每一个密码前面都有一个字符来表示密码加密的算法,比如上面的密码,1代表MD5,6则代表sha512.
网上说了一大堆,都只是生成了MD5,没人生成sha512的密码,后来网上一查,发现要想生成sha512需要使用脚本来生成-_-.(以后一定自己写一个可以生成sha512密码的脚本)
1、批量创建用户
创建用户,需要用到useradd和newusers,useradd就不多说了,newusers是用来批量创建和修改用户的命令。使用它需要先建立一个用户账号文件,文件格式需要和passwd文件格式一样。
下面我来创建用户文件:
[root@CentOS7 root]# newusers users.txt [root@CentOS7 root]# tail -4 /etc/passwd #下面是user.txt文件的内容,发现已经创建成功 user1:x:1011:1011::/home/user:/bin/bash user2:x:1012:1011::/home/user:/bin/bash user3:x:1013:1011::/home/user:/bin/bash user4:x:1014:1011::/home/user:/bin/bash
2、批量设置密码
2.1使用passwd和--stdin组合
我们通常使用的命令是这样的:[root@CentOS7 root]# echo "centos" |passwd --stdin user1 Changing password for user user1. passwd: all authentication tokens updated successfully.
优点:方便快捷,不需要交互式更改密码,这样就可以在shell脚本中直接使用这个命令修改密码了
缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全的,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。另外其它的一些发行版(如Debian/Suse)所提供的passwd并不支持--stdin这个参数
2.2使用chpasswd
2.2.1chpasswd未加密密码chpasswd其实是通过用户输入'用户名:密码'来更改一组用户的密码,还是读取文件里的内容,文件格式也是'用户名:密码',也就成为了一个可以批量修改密码的工具。
格式1
:# echo 用户名:密码 | chpasswd
[root@CentOS7 root]# echo "user1:redhat"|chpasswd
格式2:
:#cat passwd.txt | chpasswd(centos7)
:#chpasswd < passwd.txt(centos 6以前)
[root@CentOS7 root]# cat file |chpasswd #即可成功 #注意文件不能有空行 #文件符合user:passwd形式
2.2.2chpasswd加密密码
chpasswd -e选项是可以使用加密方式来加密的,让我们先来生成密码
[root@CentOS7 root]# openssl passwd -1 12345678 > file #然后进入file里面,添加上用户名,让其符合user:passwd形式 [root@CentOS7 root]# cat file |chpasswd -e #就成功了
说明:openssl passwd用来生成MD5的加密密码。
密码虽然一样,但是如果你执行第二次,则会发现不一样,是因为它是以时间来“加盐”?
加盐就是使用一个字符串来对另一个字符串进行加密,如果使用的盐不一样,则生成的密码自然就不一样。
使用同样的"盐",则生成密码一样
[root@CentOS7 root]# openssl passwd -1 -salt 'abc' 123456 $1$abc$mJPQCTATLDV5aNzcHMYLr/ [root@CentOS7 root]# openssl passwd -1 -salt 'abc' 123456 $1$abc$mJPQCTATLDV5aNzcHMYLr/
注意:我们centos6以后的系统默认都是sha512进行加密的,因为使用MD5加密早就被破解了,但是使用生成的MD5也可以当做密码,是因为每一个密码前面都有一个字符来表示密码加密的算法,比如上面的密码,1代表MD5,6则代表sha512.
网上说了一大堆,都只是生成了MD5,没人生成sha512的密码,后来网上一查,发现要想生成sha512需要使用脚本来生成-_-.(以后一定自己写一个可以生成sha512密码的脚本)
相关文章推荐
- shel脚本批量添加用户,首次登陆强制修改密码
- 用户信息列表 查询+年龄,性别搜索 +全部删除,批量删除+添加用户+修改密码
- linux批量添加用户批量修改密码(newusers,chpasswd)
- 用户信息的增删改查:非空验证添加,模糊查询,修改密码,批量和全部删除
- 用户表(查询数据 、添加数据 、排序 、点击删除 、修改密码 、批量删除 、全部删除)
- (angularjs) 数据的增删改查(添加用户,查询年龄,批量删除,全部删除,修改密码) 类似题
- linux下批量添加用户和修改密码
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- linux单用户模式修改密码(针对CentOS)
- Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
- 巧用Excel函数,简化批量导入AD用户及密码修改 推荐
- 用Excel函数简化批量导入AD用户及修改密码 推荐
- 在Oracle中添加用户 赋权 修改密码 解锁
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- 巧用Excel函数,简化批量导入AD用户及密码修改
- 批量添加账号,修改密码
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码,root密码丢失
- Java添加、修改MS AD用户密码&配置AD、CA、SSL,绑定keystore
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- VisualSVN2.1.3添加用户修改密码功能