热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

解决Linux下批量添加大量账户的问题

文章标题:解决Linux下批量添加大量账户的问题。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  方法一:
  一个系统管理者日常最常处理的工作便是管理使用者帐号了,包含增加和减少使用者、配置硬盘配额、开启个人首页等等,而在系统建置的初期面对要增加大量使用者而要回答adduser(useradd)的一些相关使用者信息便常要浪费相当多时间,况且又没有留下相关的记录,常让系统管理者痛苦不已,更别说后续的管理动作了。
  pdadduser正可以解决这种困扰,不仅可以依需要快速方便建立大量使用者帐号,使用者的密码可以是采随机或指定的方式组成,而帐号、UID、家目录都可由系统管理者自行选择设定,并可以搭配相关指令使用,深具弹性,并留有相关的记录,可以大量减轻管理者负担。笔者在本文中将使用简单的范例来说明在Linux和FreeBSD这两套系统下的使用方式,更详细的说明可以参考http://ghs.ssd.k12.wa.us/~pdavis/。
  
  安装
  pdadduser目前最新的版本是1.2,但是经笔者测试,某些系统1.2版并无法执行,此时请改用1.1版〔笔者均mirror于http://mouse.oit.edu.tw/sources/pdadduser〕,此外由Linux和FreeBSD这两套系统下建立使用者帐号并不尽相同,所以笔者将分两部分说明。
  
  1.1 Linux 安装
  step 1. tar xvfz pdadduser-1.2.tar.gz ← 解压缩Pdadduser软件
  step 2. cd pdadduser-1.2 ← 切换到pdadduser-1.2目录中
  step 3. make ← 编辑pdadduser
  step 4. gcc pause.c ?o pause ← 有时该档会有问题,所以编辑一下
  当产生pdadduser, pause 这两个可执行档即可。
  
  1.2 FreeBSD 安装
  step 1. tar xvfz pdadduser-1.1.tar.gz ← 解压缩Pdadduser软件
  step 2. cd pdadduser-1.1 ← 切换到pdadduser-1.2目录中
  step 3. gcc ?Wall ?I- -I. pdadduser ?o pdadduser ← 编辑pdadduser
  step 4. gcc pause.c ?o pause ←编辑 pause
  当产生pdadduser, pause 这两个可执行档即可。
  
  2 指令格式
  pdadduser完整的指令格式如下,笔者在本文中仅作简单的说明,更详细的使用方式请参考解开的README。
  pdadduser -n [-f ] [-F ] [-o ] [-h home-directory-format>] [-g ] [-r ] [-p ] [-t] [-d] -c 'COMMAND1' ['COMMAND2' ...]
  选项说明:
  -n :使用者清单的文字文件档案,这是必需的,例如档案内容如下所示:
  Peter Davis
  Joe Schmoe
  Jane Doe
  -f :使用者名称的组合格式,格式定义如下:
  $n:第n个字(起始字是 $0),如果不存在则忽略
  %x.n:第n个字中第x个字符,如果不存在则忽略
  例如 '%0.0$1' 是取第0个字中第0个字符和第1个字组合而成(预设也是如此),所以套用上面范例取得的使用者名称分别是 `pdavis', `jschmoe', `jdoe';'%3.0$1' 是取第0个字中第3个字符和第1个字组合而成,所以套用上面范例取得的使用者名称分别是 'edavis', 'schmoe', 'edoe'。
  -F :使用者全名的组合格式,格式定义和 -f 相同,例如 '$0 $1' 是取第0个字空格和第1个字组合而成(预设也是如此),所以套用上面范例取得的使用者全名分别是 'Peter Davis', "Joe Schmoe', 'Jane Doe';而'%0.0. $1' 取得的是 'P. Davis', 'J. Schmoe', 'J. Doe'。
  -o :输出档案,包含使用者名称、密码和错误讯息等,请务必放置安全的地方,当然有此档案则系统管理者应可玩出一些把戏才是。如果输出档名为 '-' 则仅自屏幕输出,笔者并不建议使用。此外错误讯息如 '!2!!235!' 等,请见下面范例,可以提醒管理者注意。
  -h :使用者家目录格式,首先定义ㄧ些特殊字符如下:
  u:使用者名称
  g:使用者群组
  f:使用者全名
  使用者家目录格式,格式定义如下:
  $:整个字
  %n:字中第n个字符
  例如 '/home/$g/$u' 依上例是 '/home/users/pdavis';假设使用者名称是 'S9351033',家目录希望是'/home/users/S/93/S9351033',则格式应为 '/home/users/%0u/%1u%2u/$u'。预设格式是 '/home/$u'。
  -g :使用者群组。
  -r :UID范围,预设是500到1000。
  -p :预设是系统随机数产生,当然也可自订,如 %xr 为随机数产生 r 个字符,预设是 6 个字符。
  -t:测试模式,并不真正增加使用者。
  -d:除错模式,可看到每一指令的执行过程。
  -c 'COMMAND1' ['COMMAND2' ...]:这是pdadduser最重要的部份,也就是pdadduser提供相关的参数给COMMAND执行,详细的范例在下。其中参数如下:
  $u:使用者名称
  $p:使用者密码
  $i:使用者UID
  $g:使用者群组
  $f:使用者全名
  $d:使用者家目录
  
  3 执行
  在了解指令的参数之后,我们便可以利用pdadduser来新增使用者了,但由于Linux和FreeBSD稍有不同,笔者分别说明之。
  
  3.1 Linux
  首先建立使用者清单的文字文件档案,范例如上,取名 userlists;另外笔者也建立一个shell可执行档,内容如下,取名 pda4linux。
  ./pdadduser -n $1 -o $2 -g users -d -c '/usr/sbin/adduser -c "$f" -u $i -g $g -d $d $u' '(printf "$p"; ./pause 1; printf "$p") | /usr/bin/passwd $u;' 'mkdir $d/public_html' 'cp index.html.samp $d/public_html/index.html' 'chown -R $u.$g $d/public_html' 'chmod 755 $d' 'edquota -p shie $u'
  pda4linux执行档的意思是,'/usr/sbin/adduser -c "$f" -u $i -g $g -d $d $u' 增加使用者,'(printf "$p"; ./pause 1; printf "$p") | /usr/bin/passwd $u;' 变更使用者密码,'mkdir $d/public_html' 'cp index.html.samp $d/public_html/index.html' 'chown -R $u.$g $d/public_html' 'chmod 755 $d',制作个人首页,'edquota -p shie $u' 复制shie的Quota样板。
  当然pda4linux是要修改才可以用到你的系统的,如中的index.html.samp, shie 等等。执行的格式如下:
  ./pda4linux 使用者清单 输出档案
  如:
  ./pda4linux userlists accounts
  执行第一次pda4linux观看输出档案 accounts内容如下:
  Peter Davis: name=pdavis passwd=aacuug group=users uid=500 homedir=/home/pdavis
  Joe Schmoe: name=jschmoe passwd=ogyjwm group=users uid=501 homedir=/home/jschmoe
  Jane Doe: name=jdoe passwd=appymj group=users uid=502 homedir=/home/jdoe
  再执行ㄧ次后,再观察输出档 accounts 内容如下:
  Peter Davis: name=pdavis passwd=aacuug group=users uid=500 homedir=/home/pdavis
  Joe Schmoe: name=jschmoe passwd=ogyjwm group=users uid=501 homedir=/home/jschmoe
  Jane Doe: name=jdoe passwd=appymj group=users uid=502 homedir=/home/jdoe
  !1!!256! Peter Davis: name=pdavis passwd=dedrnm group=users uid=503 homedir=/home/pdavis
  !1!!256! Joe Schmoe: name=jschmoe passwd=hfyhoy group=users uid=503 homedir=/home/jschmoe
  !1!!256! Jane Doe: name=jdoe passwd=ueixrd group=users uid=503 homedir=/home/jdoe
  由此可知此时新增使用者是会有问题的,问题当然是重复了,而有时密码产生的太简单时也是会有问题的,再次提醒一次请务必该档放置安全的地方。
  
  方法二、
  自动建立帐号--中小学网管者的救星来了(一)
  A:使用环境:RedHat Linux+cle
  1.先把档案抓回去![请按这里](http://netlab.kh.edu.tw/download/建帐号工具.zip )
  2.以root权限进入linux
  3.将解开的档案放到一个新建的 /work 目录
  4. cd /work [进入 work目录]
  5.chmod 700 * [将所有script文件属性改为 -rwx------]
  6.更改 /etc/profile里的叙述
  PATH="$PATH:/usr/X11R6/bin" 改为
  PATH="$PATH:/usr/X11R6/bin:/usr/sbin"
  存盘后离开系统再重新以root登入
  7. #./cmenu 执行script?n
  8.选[1]自动建立帐号
  9.选[3]产生全校帐号
  10.您需求的规则: 例如英文字母:stu ,最低年级:1 , 最高年级:6 , 每一年级的班级数目: 9, 每一班学生人数:50, 然后就会以:群组+年级+班级+座号的规则建立帐号,但目前尚无密码,也无法收发E-mail,请回到主选单继续.
  11.在主选单中选[4]批次更改使用者密码(二)
  12.输入群组名称:stu , 其它请依说明操作,最后会产生一个pwtemp?n,内容是使用者帐号以及群组+四位数密码.
  (参考资料:RedHat Linux随装即用.赖阿福.高健智着,松岗)
  
  自动建立帐号--中小学网管者的救星来了(二)
  A:接下来说明如何自动产生帐号通知单.
  1.将产生的pwtemp文件拷贝到Win98或WinNT上
  2.使用Excel或Access的汇入功能汇入到资料表中并分字段如编号、姓名、帐号、密码.
  3.回到Word里开启新文件.
  4.使用工具->合并打印
  5.简单格式如下: >等代表合并之字段
  高雄市和平国小电子邮件帐号分配通知单
  使用者姓名:> 配发日期:1999/9/15
  E-mail:>@mail.hpps.kh.edu.tw
  服务器信息:
  内送邮件→POP3 :mail.hpps.kh.edu.tw
  外寄邮件→SMTP :mail.hpps.kh.edu.tw
  内送邮件服务器帐号:> 密码:>
  
  6.合并完会产生一份新文件,您可以检查结果是否正确.
推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
author-avatar
518094haha
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有