爱心区 公益下载 公益文章 人在旅途 小博士乐园

>>首页 -> 公益文章 -> 技术文栏 -> 操作系统 -> Red Hat Linux下新增大量用户



Red Hat Linux下新增大量用户


作者internet 来源internetlove 加入时间:2005-8-29
摘要:
Red Hat Linux下新增大量用户

  A:添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们就不太可能还使用useradd命令一个一个地添加了,我们需要找一种简便的方法来创建大量用户。

    利用系统自身功能添加

 &n...;

转载:转载请保留本信息,本文来自
http://www.51dibs.com/info/19486.htm

Red Hat Linux下新增大量用户

  A:添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们就不太可能还使用useradd命令一个一个地添加了,我们需要找一种简便的方法来创建大量用户。

    利用系统自身功能添加

    Red Hat Linux系统本身就提供了这样的功能,操作方法如下:

    1.创建用户数据文件user.txt
    先编辑一个文本用户文件,每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留作空白或打上x号。请看下面的一个范例文件user.txt:
    user001::600:100:user:/home/user001:/bin/bash
    user002::601:100:user:/home/user002:/bin/bash
    user003::602:100:user:/home/user003:/bin/bash
    user004::603:100:user:/home/user004:/bin/bash
    user005::604:100:user:/home/user005:/bin/bash ……
    通过拷贝和粘贴的办法生成满足您需要的用户数量的文件。

    2.将user.txt中的数据导入
    以root身份执行命令/usr/sbin/newusers,从刚建立的用户文件user.txt导入数据,建立用户:
    # newusers 〈 user.txt
    然后可以执行命令vipw或vi /etc/passwd检查/etc/passwd文件,是否已经出现这些用户的数据,检查用户的宿主目录是否已经建立。

    3.对/etc/shadow进行解码
    执行命令/usr/sbin/pwunconv,将/etc/shadow产生的shadow密码解码,然后回写到/etc/passwd中,并将/etc/shadow的shadow密码栏删掉。这是为了下一步骤的密码转换工作,即先取消shadow password功能。
    # pwunconv

    4.创建密码对照文件passwd.txt
    编辑每个用户的密码对照文件,一个范例文件passwd.txt的内容如下:
    user001:密码
    user002:密码
    user003:密码
    user004:密码
    user005:密码
    ……

    5.将密码对照文件passwd.txt数据导入
    以root身份执行命令/usr/sbin/chpasswd建立用户密码,chpasswd会将经过/usr/bin/passwd指令编码过的密码写入/etc/passwd的密码栏。
    # chpasswd 〈 passwd.txt

    6.对密码编码为shadow password
    确定密码经编码写入/etc/passwd的密码栏后,执行命令/usr/sbin/pwconv将密码编码为shadow password,并将结果写入/etc/shadow。
    # pwconv

    这样就完成了大量用户的创建了。之后您可以到/home下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确,这样就可以轻松地通过Red Hat Linux自带的工具建立大量用户了。

    利用工具软件添加

    您也可以使用大量建账号的工具程序,如cmpwd,它可从下面的网址中得到:
    ftp://Linux.tnc.edu.tw/pub/Sysop/ols3tools/cmpwd101.gz
    要注意的是这个工具程序的作者仅提供该程序给非盈利的学术教育单位免费使用,其他单位或个人不能用于商业目的,而且此版本只适用于Linux平台。这里,笔者只想以此程序为例,让读者可以了解大量创建用户的脚本怎样去写。
    通过上面创建大量用户的过程相信读者应该对在Linux下创建用户的流程已经有了一个系统的了解,正常情况下如果要写一个大量创建用户的脚本,采取的方法都是建立一个用户数据文件,而此数据文件必须依照字段排序好,然后管理员通过自己写的脚本,依照每个字段去读取这个数据文件的内容,依序建立用户。像这类要处理大量字符串的脚本通常使用Perl语言来编写,将已经建立好的用户名称、用户密码的数据文件读入,将结果写入/etc/passwd与/etc/shadow文件中。这种大量建立用户的脚本难度在于如何将已建立好的用户数据文件,依据/etc/passwd的字段定义,一个一个地读入/etc/passwd文件中,并将password的字段编码,最后通过pwconv命令将数据转换到/etc/shadow文件中。
    至于脚本具体怎样去写这里不再详细介绍,让我们看一下cmpwd这个工具程序的使用,希望可以给您一些启发。
    安装方法:
    1.将cmpwd101.gz下载解压(最好放在/root目录中),并赋予可执行权限。
    # gzip -d cmpwd101.gz
    # chmod u+x cmpwd101
    2.在中文环境或以NetTerm远程登录,以root身份执行:
    # ./cmpwd101
    程序会弹出执行画面,然后进入交互式的询问模式:
    学生或其他身份文字代码?(例: stu 或 tch 等)
    user
    学生年?(例:1代表一年若是其他身份,可按Enter不填)
    起始学号?(例:650,若是其他身份,可选用其他号码或按Enter不填)
    开始的使用者编号(UID)? (例: 600,UID概念请您务必弄清楚!)
    200
    欲开设的账号数量?(例:100代表100位使用者账号)
    50
    宿主目录位置? (例: /home,按Enter预设为/home)
    密码复杂度?(请输入1~6)
    1 :账号和密码相同,但不可用telnet登入主机
    2 :账号和密码部分相同
    3 :密码统一
    4 :简易
    5 :中度
    6 :安全
    2
    建账完成!
    ……
    注意:新创建的用户密码均记录在您目前路径下的newpwd.txt文件中,您可以查看此文件获得新创建用户的密码。
    至此,使用该程序创建大量用户就完成了。需要说明的是,原程序这些提示信息为繁体中文,为了便于读者理解改为简体中文;另外,因为开发者是针对学校的应用开发,所以会有很多针对学生的设置。
    如果您也是一个教育工作者,那么可能这个工具程序正是您所需要的,否则,您也可以模仿这个程序写一个适合于您当前应用的脚本。

    如何大量删除用户

    上面介绍了两种大量创建用户的方法,如果需要大量删除用户,我们可以从以下网址下载工具程序:
    ftp://Linux.tnc.edu.tw/pub/Sysop/ols3tools/ols3delact-1.0.1.tar.gz
    使用方法如下:
    1.以root身份登入系统,然后将程序解压解包,并给予两个脚本程序可执行权限,如下所示:
    # tar xvzf ols3delact-1.0.1.tar.gz
    # chmod u+x ols3scandir.pl
    # chmod u+x ols3delact.pl
    2.然后执行命令:
    # ./ols3scandir.pl /home
    Please check the file:dir_list
    and run ./delact.pl
    这个步骤用来扫描/home下有哪些用户的宿主目录,注意,如果在您的系统中,用户宿主目录是建于其他目录之下,那么相应把/home目录改变为您所设置的存放用户宿主目录的目录下。之后,它会将用户宿主目录名称写入当前目录下的dir_list文件中,您可以使用vi来编辑它,将不想要删除的用户名称去掉。
    3.执行./ols3delact.pl,即可根据dir_list文件中的记录删除大量用户。
    这个工具程序会保护:/home/ftp、/home/httpd、/home/lost+found、/home/adm、/home/webadm、/home/webmaster等目录及用户,不会予以删除。如果您想添加其他特定的目录及用户,可以编辑ols3delact.pl脚本。
    它完成以下几件事:
    a.删除用户宿主目录;
    b.备份/etc/passwd、/etc/shadow、/etc/group配置文件。
    c.将用户记录从/etc/passwd、/etc/shadow、/etc/group文件中删除;
    注意:各个用户存放邮件的目录“var/spool/mail/用户名”并没有删除,如果您要实现此功能,可以自行修改该工具程序的脚本文件增加此功能。该程序自动备份/etc/passwd、/etc/shadow、/etc/group文件的格式为:/etc/passwd-YYYYMMDDhhmmss,如:/etc/passwd-20030106160410,shadow、group文件与此相同。
    通过这些方法大量添加、删除用户,可以大大提高网管工作的效率,如果您有兴趣,不妨也试试。


相关文章

相关软件

客户服务中心信箱:[email protected]