一、为什么需要大批量添加用户;

  我们什么时候才需要大批量添加用户呢?有时我们需要让几十个或更多的用户在主机上完成相同或相似的任务,比如我们想同时添加一堆的ftp 用户,这些ftp用户归属同一组,但不允许他们通过终端或远程登录服务器;有时我们可能为了教学,比如我们有50个学生,并且每个学生在服务器上有一个独立的用户名,能登录系统,并能管理自己的帐号或完成一些在自己权限下的作业;

  二、批量用户添加流程;

  批量添中用户流程是通过newusers 导入一个严格按照/etc/passwd 的书写格式来书写内容的文件来完成添加用户,然后通过chpasswd 导入用户密码文件来完成批量更新用户密码的过程;

  1、newusers 成批添加用户的工具;

  其用法很简单,newusers 后面直接跟一个文件;文件格式和/etc/passwd 的格式相同;

  用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL

  举例:

  win00:x:520:520::/home/win00:/sbin/nologin

  win01:x:521:521::/home/win01:/sbin/nologin

  ......

  值得一提的是关于SHELL类型,查看主机上所有SHELL ,可以通过chsh 来查看;

  [root@localhost beinan]# chsh --list

  /bin/sh

  /bin/bash

  /sbin/nologin

  /bin/ksh

  /bin/tcsh

  /bin/csh

  /bin/zsh

  其中除了/sbin/nologin ,其它类型的SHELL 都能登录系统;nologin 大多是虚拟用户用的SHELL ,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL 设置成/sbin/nologin ,比如上面的例子;

  关于用户名、UID、GID及用户的家目录是怎么回事,您可以读相应的参考文档;

  2、chpasswd 批量更新用户口令工具;

  chpasswd 工具是成批更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中;

  chpasswd < 文件

  但文件的内容并不是没有约定的,必须以下面的格式来书写,并且不能有空行;

  用户名:口令

  用户名1:口令1

  用户名2:口令2

  举例:

  win00:123456

  win01:654321

  ... ...

  三、批量添加用户实例;

  1、首先我们创建用户文件和密码文件;

  我们要创建包含新用户的文件userfile.txt ;另一个是为新添加的用户设置密码的userpwdfile.txt;

  [root@localhost ~]# touch userfile.txt

  [root@localhost ~]# touch userpwdfile.txt

  然后用文本编辑器打开文件userfile.txt,添加如下内容;

  win00:x:520:520::/home/win00:/sbin/nologin

  win01:x:521:521::/home/win01:/sbin/nologin

  win02:x:522:522::/home/win02:/sbin/nologin

  win03:x:523:523::/home/win03:/sbin/nologin

  win04:x:524:524::/home/win04:/sbin/nologin

  win05:x:525:525::/home/win05:/sbin/nologin

  win06:x:526:526::/home/win06:/sbin/nologin

  win07:x:527:527::/home/win07:/sbin/nologin

  win08:x:528:528::/home/win08:/sbin/nologin

  win09:x:529:529::/home/win09:/sbin/nologin

  userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;

  我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同;也就是说我们先是添加了win00到win09的用户,现在要为这些用户更新密码;比如下面的;

  win00:123456

  win01:654321

  win02:123321

  win03:qweewq

  win04:google

  win05:adadwc

  win06:wsscee

  win07:xxec32

  win08:543wew

  win09:3ce3wf

  2、通过newusers和chpasswd 完成批量添加用户;

  [root@localhost ~]# newusers userfile.txt

  [root@localhost ~]# chpasswd < userpwdfile.txt

  这样就算添加完成了,如果您发现 /etc/passwd 中能发现用户的明口令,您可以通过下面的命令来映射到 /etc/shadow文件名;

  [root@localhost ~]# pwconv

  四、后记;

  用户管理就算差不多完成了,到目前为止,我已经写了六篇,虽然质量不太高,但也算能称得上比较系统;在以后的几天里,我要写一写文件管理;呵。。。进度是慢了点,但还是在坚持着;坚持就是胜利,不是吗?

  五、关于本文;

  本文是大批量添加用户的一个实例,主要是newusers和chpasswd的用法的解说;实话实说,这两个工具还是有用的;至于能用在哪,我前面已经说过了,可以用在ftp的虚拟用户,可以用到教学中;

  本文没有技术含量,不值一提,但不写出来,感觉对于一个系列文档来说又少了内容;还是写出来为好。

newusers和chpasswd的更多相关文章

  1. 用户管理 之 在Linux系统中,批量添加用户的操作流程

    一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...

  2. chpasswd命令

    chpasswd命令是批量更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中.   语法 chpasswd(选项) 选项 -e:输入的密码是加密后的密文:   -h:显示帮助信 ...

  3. Linux编程 15 文件权限(用户管理 useradd,userdel,usermod,passwd,chpasswd,chsh, chfn,chage)

    一. 概述  在上一篇中讲到了与用户账户有关的二个文件passwd和shadow,以及useradd工具的介绍.这篇接着讲useradd+参数,删除用户,修改用户的演示. 1. 删除用户userdel ...

  4. Linux chpasswd (批量或单一修改用户密码)和passwd(直接修改用户密码)

    Linux命令:chpasswd 批量或者单一修改用户密码 语法: 1:# echo 用户名:密码 | chpasswd 2:# chpasswd < doiido.txt 实例 1.直接修改d ...

  5. Linux命令之passwd、chpasswd

    (1).命令passed passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inacti ...

  6. chpasswd 更简单的更改密码的方式

    [root@m01 .ssh]# useradd test[root@m01 .ssh]# echo "test:123"|chpasswd Linux命令:chpasswd 批量 ...

  7. Linux指令详解useradd groupadd passwd chpasswd chage 密码修改

    Linux指令详解useradd groupadd passwd chpasswd chage 密码修改 http://speediness.blog.51cto.com/760841/1783661 ...

  8. chpasswd、dd命令、find实战、添加系统服务、buffer、cached

    1.如果两个文件的每一行想一一对应 paste 1.txt 2.txt # 文件3.txt中存放着用户跟密码,想要添加用户并设置密码: # 用户必须存在,文件格式必须是--用户名:密码 chpassw ...

  9. shell chpasswd 命令 修改用户密码

    使用useradd 命令增加一个用户后,它默认是没有设置密码的.如果需要给用户设置或者修改密码,一般会使用passwd命名. 但是passwd命令有一个缺陷,它需要人工交互操作. 如果你是一名系统管理 ...

随机推荐

  1. eclipse 项目报错问题

    所有的问题在windoes-->show view--->Problems里查看

  2. pollard_rho和Miller_Rabin

    Miller_Rabin就是以概论大小来判断素数 可以判断2^63范围的数 pollard_rho推荐两个很好的博客来理解:整数分解费马方法以及Pollard rho和[ZZ]Pollard Rho算 ...

  3. 把公共cpp包含到cocos2d-x内部编译的方法。。

    找到cocos2d-x-3.0alpha0-pre\extensions\Android.mk文件,把自定义的cpp文件加进去即可..如果是其它系统就进相应的目录,找到配置文件添加即可..

  4. 题解西电OJ (Problem 1004 -亚特兰提斯)--最小生成树

    Description 为了找寻沉睡的亚特兰提斯大陆,wm来到了大西洋上进行探险,找了半个月仍一无所获.然而在一次突袭而来的暴风雨后,wm的船莫名地驶入了一片未知的区域,发现了一个地图上未标记的岛屿, ...

  5. POJ2389: 大数字乘法算法

    2014-12-26 大数字乘法算法一般是采用模拟"小学生乘法演算过程”方法. 主要算法思想: 1. 乘数a第i)位与乘数b第j)位数字相乘,并将该乘积结果放到乘积结果数组product的第 ...

  6. HDU-2686 Matrix 多进程DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2686 经典的多进程DP,比较简单.f[x1][y1][x2][y2]表示起点到点(x1,y1)和(x2 ...

  7. Redis+MongoDB 最佳实践 做到读写分离 -摘自网络

    方案1. (被否定) 加上Redis,做到MongoDB的读写分离,单一进程从MongoDB及时把任务同步到Redis中. 看起来很完美,但是上线后出现了各种各样的问题,列举一下: 1.Redis队列 ...

  8. SAP:建表时如果有QUAN、CURR类型的字段不能激活的问题

    建表时如有一个QUAN类型的字段,那么就要给字段设置Reference field,参考的字段的Data Type要是UNIT, 并设置对应的Reference table,也就是参考字段所在的tab ...

  9. nyoj 891 找点

    找点 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点.但是这几天LYH太忙了,你们帮 ...

  10. C# 产生随机密码

    using System.Web.Security var rawPassword = System.Web.Security.Membership.GeneratePassword(10,1) re ...