美文网首页每天一个Linux命令Linux学习|Gentoo/Arch/FreeBSDLinux
Linux篇:shell经典面试题根据文件创建用户名及密码

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

作者: walker86 | 来源:发表于2019-11-09 12:55 被阅读0次

    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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/zeagbctx.html