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$‘

时间: 2024-10-05 19:38:58

Linux运维班第二次作业的相关文章

Linux+Python高端运维班第二次作业

Linux+Python高端运维班第二次作业 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [[email protected] ~]# who |cut -d" " -f1|uniq (unknown) root test1 [[email protected] ~]# who |cut -d" " -f1|sort -u root (unknown) wangyanglin 2.取出当前系统上被用户当作其默认shel

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

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 答:有mv,cp,rm,touch,cat,vi等: 使用方法及相关演示: mv:移动或重命名文件以及文件夹 使用方法: mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 参数: -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖: -i

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

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 答:文件管理类命令有:pwd,cd,ls,mkdir,rmdir,tree 1.目录相关命令:pwd,cd (1)查看用户当前工作目录:pwd 例:[[email protected] ~]# pwd     #显示出当前工作的目录 /root [[email protected] ~]#   (2)CD的用法 cd 或者cd ~:回当前用户的主目录    例:    [[email protected] ~]# cd

全新Linux+Python高端运维班第二次作业

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 [[email protected] ~]# who | cut -d ' ' -f1 | sort -u root 2.取出当前系统上被用户当作其默认shell的最多的那个shell [[email protected] ~]# cat /etc/passwd | cut -d ':' -f7 | uniq -c | sort -nr | head -1      22 /sbin/nologin 3.将

马哥第3期运维班第二周作业

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 复制:cp cp [option] SRC... DEST SRC是单个文件: 如果DEST不存在,则新建DEST,并将SRC中的内容填充到DEST中 如果DEST存在: 如果DEST是文件,则将SRC中的内容覆盖到DEST中 如果DEST是目录,将SRC复制到DEST中,并保持原名 SRC是多个文件: DEST必须是目录并且存在,其它情形均会出错 SRC是目录: 使用-r选项,递归复制 如果DEST不存在,则新建DE

参加老男孩教育linux运维班的计划书

我叫ECCFOR,我经过老男孩教育运维班5-6个月的学习后我一定要达到的薪水目标是12K,为了达到此目标我将采取如下是个方案: 1.每天学习5个小时:上班路上1小时.下班路上1小时,回去以后3小时: 2.提前十分钟进入教室浏览课上要学的内容: 3.课上认真听讲.有问题及时记录.上课有机会马上询问: 4.下课后认真梳理老师讲解过的课程,并逐句理解实施操作: 5.课后作业抓紧一切时间完成老师留下的作业: 6.课后多想其他有经验的同学请教: 7.删除手机上其他娱乐相关视频.APP等: 8.及时调整心态

老男孩linux运维班学习决心书

大家好,我叫雷杰,浙江丽水人. 到老男孩教育前,我工作是UI/PHP开发,工作中也会接触到Linux,但也只是基础的LNMP环境搭建. 随着公司业务增长,对服务器运维的要求也越来越高,自己的技术短板也显现出来,虽然业余也会补充些Liunx相关的知识,但因为要工作,知识学习也是断断续续,零零散散,不成系统. 经过长时间考虑,还是决心脱产学习Linux运维,经过平时的观注,感觉老男孩教育比较专业,学员毕业后也都得到了不错的薪资,故决定到老男孩进行linux运维学习.我希望通过近半年的培训学习,自己能

Linux运维班第四次作业

一.创建一个10G分区,并格式为ext4文件系统:   (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl:      # mkfs.ext4 -b -m 2 -L MYDATA/dev/sdb # e2label/dev/sdb # df -lhT   (2)挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳: # mount -o noatime,noexec,acl /dev/sdb/data/myda

马哥2016全新Linux+Python高端运维班十一次作业

一.源码编译安装LNMP架构环境: 安装编译工具及库文件 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl