注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红烧鱼

linux & windows management

 
 
 

日志

 
 
关于我
mac

专注IT基础架构设计与运维。 欢迎给我留言,或邮件沟通zjwsk@163.com

网易考拉推荐

在Linux系统中大批量建立帐户[转]  

2009-05-14 22:07:28|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  【IT专家网独家】企业如果想在Linux操作系统上部署文件服务器的话,可能需要一次性建立大量的帐户。如为了加强文件服务器的管理力度,需要为每个员工配置一个帐户。如此的话,就可以针对员工进行权限控制、访问审核等等。我今天就跟大家谈谈,如果通过脚本程序在Linux操作系统中批量建立用户。

  一、建立批量用户的脚本程序。

  我先给大家一个建立批量帐户的脚本程序。然后再结合这个脚本程序来谈谈在批量建立帐户的过程中需要注意的地方。其实这个脚本程序并不是很复杂,但是其中却涉及到了Linux操作系统中编辑脚本程序的很多技巧。

  如下图,就是批量建立帐户过程中需要用到的一个脚本程序。系统管理员只要运行这个脚本程序后操作系统就会自动创建批量的用户。从这个脚本程序中可以看出,其主要完成如下三部分功能。首先根据一个文件来批量的创建用户;其次为每个用户创建根目录;第三就是为每个用户设置初始化密码并且让用户在第一次登陆操作系统的时候必须修改密码。

for i in 'awk -F: '{print $1}' users.txt
do
 useradd -m $i
 greo $i users.txt |chpasswd
 chage -d 0 $i
done

     

  二、用户名文件清单。

  以上这个脚本程序主要是根据用户预定义的文件来创建用户帐户。为此系统管理员必须要先根据一定的格式来创建一个文件,以便让脚本程序根据这个文件来创建用户。在这个用户文件中,主要包含两部分内容,分别为用户名与用户名对应的初始化密码。其中用户名放置在前,密码放置在后面,中间以冒号作为分隔符。同时必须一行一个用户名与密码,不得把多个用户放置在同一行中。

  另外需要注意的是,在Linux操作系统中,跟Windows操作系统一样,其无论是用户名还是密码都是区分大小写的。为此在建立这个用户名清单的时候,大小写一定要注意。为了后续管理的方便,我建议用户名与密码还是都用小写字母为好。同时用户的默认密码也不用太复杂,如可以利用123456用来当作初始化密码。我在建立批量用户的时候,用户名就是员工编号。由于员工编号是人事部门统一管理的,一个员工一个编号,不会重复。为此我们可以直接利用这个人事部门提供的员工编号作为用户名,而不用自己在编写。其次密码的话,我是采用英文单词welcome。即表示对员工的欢迎之意,而且这个单词也容易记忆,一举两得。不过如果企业中的员工英文水平不怎么好的话,那么还是采用单纯的数字为好。

  三、批量初始化用户密码。

  在以上的脚本程序中,我让操作系同在建立用户的同时对其进行了密码的初始化。为了实现这个用户,我采用了chpasswd命令。这个工具是用来批量更新用户密码的,其就是把一个文件的内容重定向添加到密码文件中。注意在使用这个命令的时候,必须对文件的格式有严格的要求。也就是说系统管理员必须以“用户名:口令”的格式来书写这个文件,在用户名与密码之间必须以英文状态下的分号来进行分割。这也正是我在上面建立用户文件时强调的一定要注意这个文件的书写格式。

  利用grep $1 users.txt |chpasswd命令,就是告诉操作系统利用文件user.txt中用户对应的密码来初始化用户的密码。但是为了管理的方便,往往对于用户的初始化密码是同一个。这显然安全系数并不是很高。为此系统管理员需要让用户在下次登陆操作系统的时候,强制用户更改密码。如此的话,每个用户的密码只有他们自己知道,从而保障文件服务器的安全。


  四、强制用户在下次登陆时更改密码。

  为了安全与管理上的考虑,最好能够让用户在下次登陆的时候更改密码。有些用户可能没有这么乖,安全观念没有这么强。此时系统管理员就需要通过系统强制来让用户更改密码。要实现这个目的的话,我在校本程序中是通过chage命令来实现的。

  这个命令后面加上不同的参数,可以实现不同的控制需要。如-M 10,就表示用户采用这个命令最多的天数不能够超过十天,即在十天后必须更改密码。如-W参数表示设定在密码逾期日期几天前警告用户。如把这个参数设置为3,并且密码的有效期在2009年5月1日到期的话,则在4月28日用户登录的时候系统就会提醒用户需要更改密码,防止因为密码过期失效而给用户访问带来的麻烦。这个命令的参数比较多,大家可以参考相关的文档。我在这里使用的是-d参数,它表示从1970年1月1日算起,将账号密码最后一次变更的天数设置为某日期。这个官方的解释可能不怎么容易理解。简单的来说,如果系统管理员希望用户在第一次登陆时便强迫重新设置密码是,可以把这个参数设置为0即可。也就是说“chage –d 0 用户名”这种形式就表示强制用户在下次登陆时更改密码。

  有时候可能系统管理员需要查询当前密码的使用期限,此时也可以利用这个命令来完成。如chage 用户名,此时系统就会显示当前密码的有效期限。系统管理员还可以直接更改这个数值,让密码的有效期限延长或者缩短。当然这些操作必须都在特权用户下执行。

  五、创建用户主目录。

  Linux操作系统跟Windos操作系统类似,在建立用户的时候会为这个用户创建一个主目录,目录的名字就是以这个用户名命名。默认情况下,这个用户的相关文件就是存储在用户的主目录下,除非用户更改其存储路径。在Linux操作系统中,如果一个个建立帐户的话,往往系统会自动为用户创建主目录(可能不同版本的操作系统有所差别)。但是如果是利用脚本程序来批量建立用户的话,则往往不会为用户自动创建主目录。而在部署文件服务器时,必须为每个用户创建主文件夹。否则的话,如果在用户创建完毕后再一个个的去创建主目录的话,那就非常的麻烦。

  为此我在useradd命令后面加入了-m选项。这个选项表示当主目录不存在的时候,强制创建用户主目录。并同时把/etc/ske下的所有文件复制到用户的主目录下。这里顺便说一句,useradd命令也有很多的参数,但是需要注意的是,它跟chage命令不同。前者的参数都是小写的(除了G之外),而后者的参数有大小写之分。而且大小写不同,含义也不同,有时候甚至会截然相反。为此系统管理员在书写命令的时候,对于这种情况需要特别的注意。

  另外在创建帐户的时候,我们有时可以加入参数-f来提高用户名密码的安全性。这个参数表示当用户的帐号密码逾期几天后,将禁止此帐号登陆。如果设置为-1的话,表示没有这个期限。如某个员工可能离职了,此时如果事先设置这个参数并且设置了密码有效期限的话,那么这个用户名就会过一点时间自动失效。从而可以因为系统管理员的疏忽,其他用户在这个员工离职后仍然冒用这个账号进行一些破坏活动。而现在设置了这个参数后,由于员工离职了那么就不会对密码进行更改;而其他用户也无权对他人的密码进行更改。那么一段时间后这个账户也就会自然而然失效了。故是否需要设置这个参数,还是需要根据企业对于安全的实际需要来考虑。如果企业对于安全要求比较苛刻的话,那么设置这个-f参数是很有必要的。系统管理员可以在上面脚本程序useradd命令后面加入-f参数。

  通过以上的分析,相信大家对于在Linux操作系统中批量建立账户应该有比较深入的认识了。以上的脚本程序只是完成批量建立账户的一些基本功能。如果大家需要实现一些比较复杂的功能,如重定向用户的主目录,或者进行相关的权限设置等等,都可以在上面这个脚本程序中进行相关的修改。最后需要向各位系统管理员强调的是,用户名与密码对于大小写是敏感的。为了后续维护管理的方便,最好把用户名与密码设置为小写为好。

  评论这张
 
阅读(537)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017