马哥2016全新Linux+Python高端运维班第三周作业
                    
                    

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。


    [root@localhost ~]# who | cut -d" " -f1 | uniq
    root
    
    

2、取出最后登录到当前系统的用户的相关信息。


[root@localhost ~]# id $(w | sort -t " " -k4 -n | cut -d " " -f1 |head -1)
                    uid=0(root) gid=0(root) 组=0(root)



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

    
    [root@localhost ~]# cut -d: -f7 /etc/passwd |uniq -c | sort -n | tail -1
         35 /sbin/nologin




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



    [root@localhost ~]# sort -t: -k3 -n /etc/passwd | tail -n 10 |tr 'a-z' 'A-Z' > /tmp/maxusers.txt
    [root@localhost ~]# cat /tmp/maxusers.txt
    UNBOUND:X:996:994:UNBOUND DNS RESOLVER:/ETC/UNBOUND:/SBIN/NOLOGIN
    POLKITD:X:997:996:USER FOR POLKITD:/:/SBIN/NOLOGIN
    SYSTEMD-NETWORK:X:998:997:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
    SYSTEMD-BUS-PROXY:X:999:998:SYSTEMD BUS PROXY:/:/SBIN/NOLOGIN
    YICX:X:1000:1000:YICX:/HOME/YICX:/BIN/BASH
    MAGEIA:X:1100:1100::/HOME/LINUX:/BIN/BASH
    SLACKWARE:X:2002:2016::/HOME/SLACKWARE:/BIN/TCSH
    OPENSTACK:X:3003:2019::/HOME/OPENSTACK:/BIN/BASH
    MYSQL:X:3004:3004::/HOME/MYSQL:/SBIN/NOLOGIN
    NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN


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



    [root@localhost ~]# ifconfig| grep 'inet' 
        inet 192.168.102.183  netmask 255.255.255.0  broadcast 192.168.102.255
        inet6 fe80::20c:29ff:fe36:e77f  prefixlen 64  scopeid 0x20<link>
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        
    [root@localhost ~]# ifconfig| grep 'inet' | cut -d: -f2 | cut -d "" -f1
        inet 192.168.102.183  netmask 255.255.255.0  broadcast 192.168.102.255
        inet 127.0.0.1  netmask 255.0.0.0
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255


6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。



    [root@localhost ~]# ls /etc/*.conf |tr 'a-z' 'A-Z'>  /tmp/etc.conf
    
    [root@localhost ~]# cat /tmp/etc.conf
    
    /ETC/ASOUND.CONF
    /ETC/AUTOFS.CONF
    /ETC/AUTOFS_LDAP_AUTH.CONF
    /ETC/BRLTTY.CONF
    /ETC/CGCONFIG.CONF
    /ETC/CGRULES.CONF
    /ETC/CGSNAPSHOT_BLACKLIST.CONF
    /ETC/CHRONY.CONF
    /ETC/DLEYNA-SERVER-SERVICE.CONF
    /ETC/DNSMASQ.CONF
    .....
    

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



    [root@localhost var]# ls -l | grep -v '^d' | wc -l
    4
    [root@localhost var]# ls -l | grep  '^d' | wc -l
    19


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



    [root@localhost var]# sort -t: -k3 -n /etc/group | head -10 |cut -d: -f1
    root
    bin
    daemon
    sys
    adm
    tty
    disk
    lp
    mem
    kmem


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



    [root@localhost var]# cat /etc/fstab /etc/issue | tee /tmp/etc.test
    #
    # /etc/fstab
    # Created by anaconda on Sat Aug 20 21:06:51 2016
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=c9557893-e34d-4410-a4e0-f24104d11299 /                       xfs     defaults        0 0
    UUID=038bbf03-c7d4-4bfb-bcc4-102da61d7bf8 swap                    swap    defaults        0 0
    \S
    Kernel \r on an \m


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

                                        命令总结:
                                    
    useradd, groupadd, su, id, usermod, userdel, groupmod, groupdel, passwd, newgrp, pwck
                              gpasswd, chage, chsh, chfn, finger
                              
                              

   (1)、创建组distro,其GID为2016;
   
    [root@localhost ~]# groupadd -g 2016 distro
    [root@localhost ~]# groups distro
    groups: distro: no such user
    
    
   
   
   (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
   
    [root@localhost ~]# useradd -u 1005 -g distro mandriva
    [root@localhost ~]# id mandriva
    uid=1005(mandriva) gid=2016(distro) 组=2016(distro)
    
    
   
   
   (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
   
    [root@localhost ~]# useradd -u 1100 -d /home/linux mageia
    [root@localhost ~]# id mageia
    uid=1100(mageia) gid=1100(mageia) 组=1100(mageia)
    [root@localhost ~]# cd /home
    [root@localhost home]# ls
    linux  mandriva  yicx
    
    
   
   
   (4)、给用户mageia添加密码,密码为mageedu;
   
    [root@localhost home]# passwd mageia
    更改用户 mageia 的密码 。
    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
   
   
   (5)、删除mandriva,但保留其家目录;
   
   
   
    [root@localhost home]# userdel mandriva
    [root@localhost home]# ls
    linux  mandriva  yicx
     
   
   
   (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
   
   
   
    [root@localhost home]# groupadd peguin
    [root@localhost home]# useradd -u 2002 -g distro -G peguin slackware
    [root@localhost home]# id slackware
    uid=2002(slackware) gid=2016(distro) 组=2016(distro),2017(peguin)
   
   
   (7)、修改slackware的默认shell为/bin/tcsh;
   
   
   
    [root@localhost home]# usermod -s /bin/tcsh slackware
    [root@localhost home]# cat /etc/passwd | grep "slackware"
    slackware:x:2002:2016::/home/slackware:/bin/tcsh
   
   
   (8)、为用户slackware新增附加组admins;
   
   
   
    [root@localhost home]# groupadd admins
    [root@localhost home]# usermod -a -G admins slackware
    [root@localhost home]# id slackware
    uid=2002(slackware) gid=2016(distro) 组=2016(distro),2017(peguin),2018(admins)
   
   
   (9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
   
   
   
    [root@localhost home]# passwd -n3 -x80 -w3 slackware
    调整用户密码老化数据slackware。
    passwd: 操作成功
   
   
   (10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;
   
   
   
    [root@localhost home]# useradd -u 3003 -g clouds -G peguin,nova openstack
    [root@localhost home]# id openstack
    uid=3003(openstack) gid=2019(clouds) 组=2019(clouds),2017(peguin),2020(nova)
   
   
   (11)、添加系统用户mysql,要求其shell为/sbin/nologin;
   
   
   
    [root@localhost home]# useradd -s /sbin/nologin mysql
    [root@localhost home]# id mysql
    uid=3004(mysql) gid=3004(mysql) 组=3004(mysql)
    [root@localhost home]# cat /etc/passwd |grep "mysql"
    mysql:x:3004:3004::/home/mysql:/sbin/nologin
   
   
   (12)、使用echo命令,非交互式为openstack添加密码。
   
   
   
    [root@localhost home]# echo "openstackpass" | passwd --stdin openstack
    更改用户 openstack 的密码 。
    passwd:所有的身份验证令牌已经成功更新。