每天一个Linux命令Linux学习|Gentoo/Arch/FreeBSDLinux

Linux篇:shell经典面试题根据文件创建用户名及密码

2019-11-09  本文已影响0人  walker86

01 前言

shell脚本已经学习了很长一段时间了,现在时不时来看一些经典的面试题,复习一些常用知识点,温故知新,为明天做准备~

02 根据文件内容创建用户名及密码

背景:写一个脚本,满足一下需求及应用,如一个文件的内容如下,根据文件内容实现批量创建用户,第一列为用户名,第二列为密码

测试文件test.list

这个题目相信大家都很熟悉了,面试甚至是实际工作应用当中都会经常用到

今天我们来看看实现思路。

第一步:按行读取文件,推荐用while read line 的模式

先写脚本框架

while read line 按行读取文件

第二部:将用户名和密码分别取出来,并赋值给变量

这里用awk实现

取出用户名、密码列并赋值

第三步:创建用户用useradd,同步创建密码可以用非交互式实现,即

创建用户名及密码

第四步:考虑几种特殊情况

万一要创建的用户本来就存在呢?所以应加个判断,用户存在不做操作,用户不存在再执行

考虑用户已存在的情况

还有,创建用户操作只有root账户有权限,所以一开始就应该判断当前用户是不是root

判断用户是不是root

脚本就写好啦,执行一下看看效果:

测试效果

可以看到,用户和密码都已成功创建,但是id判断用户时有不想看到的输出,再改一下,完整的脚本如下:

完整脚本

再次执行,就不会有用户不存在这条无须存在的输出了

03 总结

这是一个工作和面试都非常经典的案例,知识点总结如下:

3.1 判断用户是否为root,echo $UID ,root账户为0,其余非0

3.2 按行读取文件,while read line 模式

3.2 判断用户是否存在,id user

3.4 非交互式创建用户名及密码 echo ****** | passwd user --stdin

上一篇 下一篇

猜你喜欢

热点阅读