码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-08-15 22:55:01      阅读:786      评论:0      收藏:0      [点我收藏+]

标签:linux 作业

本周作业内容:

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

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

技术分享


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

# id $(who | sort -t‘ ‘ -k3,4 | tail -1 | cut -d‘ ‘ -f1)

技术分享


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

# cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n | tail -1

技术分享


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

# sort -t: -k3 -n /etc/passwd | tail | tr ‘a-z‘ ‘A-Z‘ > /tmp/maxusers.txt

技术分享


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

centos7:

# ifconfig | head -n 2 | tail -1 | cut -d‘ ‘ -f10

# ifconfig | awk ‘NR==2{print$2}‘

# ifconfig | sed -n ‘2s/^.*inet \([0-9].*\).net.*/\1/gp‘

技术分享

centos6:

# ifconfig | head -n 2 | tail -1 | cut -d: -f2 | cut -d‘ ‘ -f1

# ifconfig | awk -F‘[ :]+‘ ‘NR==2{print $4}‘

# ifconfig | sed -n ‘2s/^.*:\([0-9].*\) .Bc.*/\1/gp‘

技术分享


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

# ls /etc/*.conf | egrep -o ‘[^/]+$‘ | tr ‘a-z‘ ‘A-Z‘ > /tmp/etc.conf


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

# ls -ld /var/* | wc -l


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

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

    技术分享


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

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

    技术分享


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

  用户创建:useradd

    useradd [option] LOGIN

    useradd user1

     -u UID:指定用户ID ,值范围UID_MIN-UID_MAX,定义在/etc/login/defs

     -g GID:指定用户主组,指定的组必须事先存在,如果不指定,则创建一个私有组

      -c :指定用户描述信息

      -d :指定用户家目录,如果不指定,则在/home下创建一个同名的目录

     -s :指定用户的shell,可用列表在/etc/shells中,如果不指定,默认使用/bin/bash

     -G :指定用户的附加组,可以指定多个,用逗号分割,组必须事先存在

     -D :更改默认值,useradd -D -s /bin/tcsh ,把默认shell更改为/bin/tcsh

     -f :指定用户过期保留时间,默认是-1,则关闭此功能

     -r :创建系统用户


  组创建:groupadd

    groupadd [option]...group_name

       -g :指定GID

       -r :创建系统组


  id :查看用户相关的ID信息

    id [option]...[user]

       -u:uid

       -g:gid

       -G:附加组

       -n:name


  su :切换用户或使用用户身份执行命令

    切换用户:

      su [options...] [-] [user[args...]]

      su UserName :非登陆式切换,不会读取目标用户的配置文件

      su - UserName :登陆式切换,会读取目标用户的配置文件,完全切换

       root用户su到其他用户无须密码,非rot用户切换时需要密码

    不切换用户,使用用户身份执行命令:

       su [-] UserName -c ‘COMMAND‘ 

    -l :su -l UserName 相当于 su - UserName


 用户属性修改:usermod

    usermod [option] LOGIN

      -u UID :新的UID

       -g GID :新的主组

      -G :新的附加组,原来的附加组将会被覆盖,若要保留原有的,则要同时使用-a

      -s :新的shell

       -c :新的注释信息

      -d :新的家目录,原来家目录的文件不会同时移动到新的家目录,若要移动,则要同时使用-m选项

      -l :新的名字

       -L :锁定

      -U :解锁

      -e :YYYY-MM-DD 指定用户过期日期

      -f :指定非活动期限


  给用户添加密码:passwd

    passwd [option] UserName :修改指定用户的密码,仅root用户有权限

    passwd :修改当前用户的密码

       -l :锁定用户

       -u :解锁用户

       -n :指定最短使用期限

       -x :指定最大使用期限

       -w :指定提前多少天开始警告

       -i :指定非活动期限

       -d :删除密码

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

         echo "PASSWORD" | passwd --stdin UserName


  删除用户:userdel

    userdel [option]... LOGIN

       -r :删除用户家目录


  组属性修改:groupmod

    groupmod [option]...group

       -n group_name: 新名字

       -g GID : 新的组ID


  组删除:groupdel

    groupdel GROUP


  组密码添加:gpasswd

    gpasswd [option] group

       -a user :将user添加至指定组中

       -d user :删除用户user的以当前组为组名的附加组

       -A user1,user2...:设置有管理权限的用户列表

    newgrp :切换到指定的组临时作为主组

        如果用户不属于此组,则需要输入密码

        如果用户属于此组,则不需要输入密码

    pwck :检查密码文件的完整性


 修改用户的属性:chage

    chage [option] LOGIN

        -d :最近一次修改密码时间

        -E :帐号到期时间

        -I :非活动期限

        -m :最小使用天数

        -M :最大使用天数

        -W :密码到期前收到警告的天数

      -l :列出当前用户的设置


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

    # groupadd -g 2016 distro

   

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

    # useradd -u 1005 -g distro mandriva

   

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

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

   

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

    # echo "mageedu" | passwd --stdin mageia


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

    # userdel mandriva

   

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

    # groudadd peguin
    # useradd -u 2002 -g distro -G peguin slackware

   

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

    # usermod -s /bin/tcsh slackware

   

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

    # groudadd admins
    # usermod -a -G admins slackware
    或者
    # gpasswd -a slackware admins

   

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

    # passwd -n 3 -x 180 -w 3 slackware

   

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

    # groudadd clouds
    # groudadd nova
    # useradd -u 3003 -g clouds -G peguin,nova

   

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

    # useradd -s /sbin/nologin mysql

   

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

    # echo "password" | passwd --stdin openstack

   


本文出自 “ld0381的学习之旅” 博客,请务必保留此出处http://ld0381.blog.51cto.com/3318114/1838312

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

标签:linux 作业

原文地址:http://ld0381.blog.51cto.com/3318114/1838312

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!