当我们在linux平台上开发一些项目时,或者有一些项目是需要部署到linux系统上时,有时候会涉及到linux上的特定的账户,例如有一些项目需要运行在某些特定的账户下,或者有时候需要在全新的环境上搭建一些环境(例如:LAMP)linux+apache+mysql+php 时都可能会涉及到需要添加一些账户信息。如果此时用脚本来维护这些account,就会简化一些不必要的操作,大家应该都知道在linux如果手动添加用户都会涉及到一个交互的操作,无论你是用useradd命名或者直接操作/etc/passwd 或 /etc/shadow 文件。那么这里就以用脚本创建FTP账户为例。
1.首先需要检查你创建的账户是否已经存在该系统上,常见的办法是通过解析/etc/passwd文件确定。当然在linux上如果想实现此操作的方式有很多种,这里就以常见命令组合来完成。借助linux上的cat、awk、grep 来实现此步骤,关于这些命令可以查l命令本身帮助文档 用 “命令 --help” 或者是通过 man 的方式 。代码如下(以创建demo_ftp账户为例):
/bin/cat /etc/passwd | /bin/awk -F ':' '{print $(1)}' | /bin/grep -E "^$FTP_USER$"
这里FTP_USER是一个变量,里面存储的是demo_ftp, cat命令是读取整个passwd文件,然后通过管道命令传递给awk命令,这里用-F是以“:”分隔那些信息,因为在paswwd文件的对于每一行的存储格式都是多个单元用"":"链接的。简单的理解就相当于php中explode函数和js中的spilt,其中print $(1) 就是打印第一列信息。然后将第一列信息在传递给grep命令,-E代表可以使用正则表达式,这是就以这个账户开始和结束(唯一确定一个账户)。
2.如果在shell中执行此命令,需要用``(键盘上Esc键下面那个字符)这个符号来把那个命名包装起来,该命名就返回该账户的信息(前提是该账户已经存在),否在返回空。在此可以做一个判断决定是否创建该账户。
3.如果该机器上没有账户就需要创建,创建命令如下:

最低0.47元/天 解锁文章
1361

被折叠的 条评论
为什么被折叠?



