首页 > 代码库 > Linux运维班第二次作业

Linux运维班第二次作业


一、列出当前系统上所有已经登录的用户的用户名(同用户登录多次只显示一次)。

    题目并没有说明取出的用户名是否允许排序处理,所以可写成:

    # who | cut -d‘ ‘ -f1 | sort -u

 

 

二、取出当前系统上被用户当作其默认shell的最多的那个shell

     统计/etc/passwd文件中默认shell出现最多的shell的次数再取出

    # cat /etc/passwd | cut -d: -f7 | uniq -c |sort -nr | head -n 1

       

 

  

三、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改写为大写后保存至/tmp/maxusers.txt文件中

    # cat/etc/passwd | sort -nr -t: -k3 | head -n 10 | tr ‘a-z‘ ‘A-Z‘

       > /tmp/maxusers.txt

   

    

四、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分

      先取出IP地址的所在行再进行切分

    #ifconfig | grep ‘inet[[:space:]].*‘ | cut -d‘ ‘ -f10 | head -n 1

 

 

五、显示/var目录下一级子目录或文件的总个数

   # tree -L 1 /var |tail -n 1

     

 

六、取出/etc/group文件中第三个字段数值最小的10个组的名字

  # cat /etc/group | sort -n -t: -k3 | head -n 10 | cut-d‘:‘ -f1

 

 

七、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中

 # cat /etc/issue >> /tmp/etc.test | cat/etc/fstab >> /tmp/etc.test

 

 

八、请总结描述用户和组管理类命令的使用方法并完成以下练习:

   (1)创建组distro,其GID为2016

       创建组命令:groupadd

       其用法:groupadd [options]... groupname

         参数:-g GID,表示指明创建组的组号;

       # groupadd -g 2016 distro

 

 

   (2)创建用户mandriva,其ID号为1005;基本组为distro

       创建用户命令:useradd

       其用法:useradd [options]... username

         参数:-u UID,表示指明创建用户的ID号;

               -g GID,表示指明创建用户的基本组,可为组号或组名;

       # useradd -g distro -u 1005 mandriva

 

 

   (3)创建用户mageia,其ID号为1100,家目录为/home/linux;

        同使用命令:useradd

              参数:-d /path_to_homedir,指定特定路径为用户的家目录;

       # useradd -u 1100 -d /home/linux mageia

 

 

   (4)给用户mageia添加密码,密码为mageedu;

       添加或修改用户密码命令:passwd

       其用法:passwd [options] username

         参数:--stdin:从标准输入接收用户密码;

       一般通过passwd命令直接跟用户名(mageia),然后手动输入两次密码以启用该用

     户的密码登录认证;但是这里也可以从标准输入一次性给用户设定好密码:

       # echo "mageedu" | passwd--stdin mageia

 

 

   (5)删除mandriva,但保留其家目录;

       删除用户命令:userdel

       其用法:userdel [option]... username

         参数:-r:删除用户家目录,不添加该参数默认不删除;

       # userdel mandriva   

 

 

     (6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

         同使用命令:useradd

            参数:-u UID:指定用户ID;

                     -g GID:指定用户基本组;   

                     -G GROUP1[,GROUP2,...]:指定用户附加组;

         # useradd -u 2002 -g distro -G peguinslackware

 

 

     (7)修改slackware的默认shell为/bin/tcsh;

         修改用户属性命令:usermod

             用法:usermod [option] username

             参数:-s SHELL,修改用户的默认shell;

         # usermod -s /bin/tcsh slackware

 

 

     (8)为用户slackware新增附加组admins;

         同使用命令:usermod

             参数:-G GROUP1[,GROUP2,...]:给用户指定新附加组,配合"-a"参数表示

                   给用户添加新附加组,原有附加组不会被覆盖;

         # usermod -a -G admins slackware

 

 

     (9)为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警

           告为3天;

         设置用户密码属性使用命令:chage

             用法:chage [option]... username

             参数:-m:表示设定密码的最小使用天数;

                   -M:表示设定密码的最大使用天数;

                   -W:表示设定密码失效前提前多少天提示警告信息;

         # chage -m 3 -M 180 -W 3 slackware

 

 

     (10)添加用户openstack,其ID号为3003,基本组为clouds,附加组为peguin

            和nova;

          添加用户使用命令:useradd,与(6)小题类似;

         # useradd -u 3003 -g clouds -Gpeguin,nova openstack

 

 

     (11)添加系统用户mysql,要求其shell为/sbin/nologin;

          使用命令:useradd

              参数:-r:表示添加的是系统用户;

                    -s SHELL:指明创建用户的默认shell;

         # useradd -s /sbin/nologin -r mysql

 

 

      (12)使用echo命令,非交互式为openstack添加密码;

           使用命令:passwd,与(4)小题类似;

          # echo "open" | passwd--stdin openstack

 

九、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限

     # cp -arf /etc/skel/*/home/tuser1

      # chmod -R 600 /home/tuser1

 

 

十、显示/proc/meminfo文件中以大写或小写S开头的行,用两种方式;

    第一种方式:匹配锚定行首为小写或大写S开头的行;

      # cat /proc/meminfo | grep ‘^[s,S].*‘

 

     第二种方式:匹配词首字母为小写或大写S开头的行;

      # cat /proc/meminfo | grep ‘\b[s,S].*‘

 

 

十一、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

     # cat /etc/passwd | grep -v‘.*nologin$‘ | cut -d‘:‘ -f1

 

 

十二、显示/etc/passwd文件中默认shell为/bin/bash的用户;

     # cat /etc/passwd | grep ‘.*bash$‘| cut -d‘:‘ -f1

 

 

十三、找出/etc/passwd文件中的一位数或两位数;

     # cat /etc/passwd | grep‘\b[0-9]\{1,2\}\b‘

 

 

十四、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

     # cat /etc/rc.d/rc.sysinit |grep ‘^#[[:space:]]\+[^[:space:]]\+‘

 

 

十五、打出netstat-tan命令执行结果中以‘LISTEN‘,后或跟空白字符结尾的行;

     # netstat -tan | grep‘.*LISTEN\b‘

 

 

十六、添加用户bash,testbash,basher,nologin(此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    思路:取出行首用户名和行尾bash名同名的行,将整个锚定行首的关键字再在行尾锚定一次即可 

      # useradd bash

      # useradd testbash

      # useradd basher

      # useradd -s /sbin/nologin nologin

      # cat /etc/passwd | grep‘\(^[a-z][^:]\+\).*\1$‘


本文出自 “Linux高端运维培训” 博客,请务必保留此出处http://hhclab.blog.51cto.com/6743827/1885243

Linux运维班第二次作业