Linux文件系统管理

马哥教育网络班23期+第3周课程练习

Linux文件系统管理

由于第三周所学的只是比较零碎,知识量比较大,这篇博客主要讲述的是一些习题,包括怎样完成的练习的思路和截图等等。首先我们看第一个题目

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

    [root@localhost]/media/Packages# who | cut -d' ' -f1 | uniq

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

[root@localhost]/media/Packages# w | tail -1 | cut -d' ' -f1 | id

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

第一步:

[root@localhost ~]# cat /etc/passwd | cut -d: -f7 | sort | uniq
/bin/bash
/bin/sync
/bin/tsch
/sbin/halt
/sbin/nologin
/sbin/shutdown

第二步: 对当前找到的这些shell 在/etc/passwd 的文件下作查找,查一下哪个shell 的数量最多,分别使用 cat /etc/passwd | grep -E | wc -l 命令 查看一下分别有多少 最后找到最多的打印出来即可

或者是写一个简单的循环脚本,也可以解决,请看下图:

blob.png

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

blob.png

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

[root@localhost test]# ifconfig | grep "inet" | head -1 | grep -o -E "(([[:digit:]]+\.){3}([[:digit:]]+))" | head -1
192.168.0.12
[root@localhost test]#

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

[root@localhost test]# find /etc/ -name "*.conf" | tr 'a-z' 'A-Z' >> /tmp/etc.conf
[root@localhost test]# cat !$
cat /tmp/etc.conf
/ETC/RESOLV.CONF
/ETC/PKI/CA-TRUST/CA-LEGACY.CONF
/ETC/YUM/PLUGINCONF.D/FASTESTMIRROR.CONF
/ETC/YUM/PLUGINCONF.D/LANGPACKS.CONF
/ETC/YUM/PROTECTED.D/SYSTEMD.CONF
/ETC/YUM/VERSION-GROUPS.CONF
/ETC/YUM/YUM-CRON-HOURLY.CONF
/ETC/YUM/YUM-CRON.CONF
/ETC/LVM/LVM.CONF
/ETC/LVM/LVMLOCAL.CONF
/ETC/DRACUT.CONF
/ETC/DEPMOD.D/DIST.CONF
/ETC/LIBUSER.CONF
/ETC/AUDIT/AUDITD.CONF
/ETC/SESTATUS.CONF
/ETC/RDMA/MLX4.CONF

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

[root@localhost test]# ls /var/ 
adm  cache  crash  db  empty  games  gopher  kerberos  lib  local  lock  log  mail  nis  opt  preserve  run  spool  tmp  yp
[root@localhost test]# ls /var/ | wc -l
20

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

[root@localhost test]# cat /etc/group | sort -t: -k3 -n | 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 ~]# cat /etc/fstab /etc/issue >> /tmp/etc.test
[root@localhost ~]# cat !$
cat /tmp/etc.test
# /etc/fstab
# Created by anaconda on Tue Aug 23 16:38:07 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
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=79e2f3d9-4bd1-4b1c-beda-dcac56065789 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdc1 /mydata ext4 defaults 0 0  
\S
Kernel \r on an \m

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

用户和组的管理类命令2类,首先是用户的管理类命令无非就是增删改查 
(1)useradd 命令 
(2)userdel 命令 
(3)usermod 命令 
(4)id 命令 
(5)finger 命令 
第二 是组管理类命令 
(1)groupadd 命令 
(2)groupdel 命令 
(3)groupmod命令

练习:

(1)创建组distro 其GID 为2016

[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group | grep -E "distro"
distro:x:2016:
[root@localhost ~]#

(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 -m mageia
[root@localhost ~]# id mageia
uid=1100(mageia) gid=1100(mageia) 组=1100(mageia)
[root@localhost ~]# cat /etc/passwd | grep -E "mageia"
mageia:x:1100:1100::/home/linux:/bin/bash

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

[root@localhost ~]# passwd mageia
更改用户 mageia 的密码 。
新的 密码:
无效的密码: 它基于字典单词
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

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

[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 组=2016(distro)
[root@localhost ~]# cat /etc/passwd | grep -E "^mandriva"
mandriva:x:1005:2016::/home/mandriva:/bin/bash
[root@localhost ~]# userdel mandriva
[root@localhost ~]# id mandriva
id: mandriva:无此用户
[root@localhost ~]# ls /home/mandriva/
[root@localhost ~]# ls /home/mandriva/ -l
总用量 0

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

[root@localhost ~]# useradd -u 2002 -g distro -G penguin slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) 组=2016(distro),2017(penguin)
[root@localhost ~]#

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

[root@localhost /tmp]# usermod -s /bin/tcsh slackware
[root@localhost /tmp]# cat /etc/passwd | grep -E "slackware"
slackware:x:2002:2016::/home/slackware:/bin/tcsh

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

[root@localhost /tmp]# usermod -G admins -a slackware
[root@localhost /tmp]# id slackware
uid=2002(slackware) gid=2016(distro) 组=2016(distro),2017(penguin),2018(admins)

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

[root@localhost /tmp]# passwd -n 3 -x 180 -w 3 slackware
调整用户密码老化数据slackware。
passwd: 操作成功
[root@localhost /tmp]# echo slackware | passwd --stdin slackware
更改用户 slackware 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@localhost /tmp]# cat /etc/shadow
slackware:$6$0iCwLkzs$FR.Sm5ju9ZecWLT1lvqVn3MgYJyxG2wYjmfPMKWfHVp6LmUoTTfis58UKXQoh3oPLGGs8.ALap1wy5EtYx7as1:17063:3:180:3:::

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

[root@localhost /tmp]# useradd -u 3003 -g clouds -G penguin,nova  openstack
[root@localhost /tmp]# id openstack
uid=3003(openstack) gid=2020(clouds) 组=2020(clouds),2017(penguin),2019(nova)

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

[root@localhost /tmp]# useradd -s /sbin/nologin mysql
[root@localhost /tmp]# id mysql
uid=3004(mysql) gid=3004(mysql) 组=3004(mysql)
[root@localhost /tmp]# cat /etc/passwd | grep -E "mysql"
mysql:x:3004:3004::/home/mysql:/sbin/nologin

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

[root@localhost /tmp]# echo "openstack" | passwd --stdin openstack
更改用户 openstack 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

原创文章,作者:luobo3692003,如若转载,请注明出处:http://www.178linux.com/48453

(0)
上一篇 2016-09-22 21:15
下一篇 2016-09-23 08:52

相关推荐

  • grep &&正则表达式&&通配,元字,转义符

    grep 基于正则表达式的查询 1正则表达式: 正则表达式是通过使用特殊的字符所编写的模式,一些字符不表示字符的表面意思,具有控制和通配的功能. 使用正则表达式进行匹配具有两种方法:一是通过使用特殊的元字符进行字符匹配;二是使用次数匹配。 一, 正则表达式的特殊字符(元字符) :  #建议再温习一下之前所学的统通配符,对比一下,防止混淆。 (1)元…

    Linux干货 2016-08-05
  • linux用户权限管理

       在linux文件系统中使用ls -l命令可以查看文件的属性,但是我们明白其中属性各自代表的意思吗?下面我们就来看一看,这其中的奥义。。。 文件属性 使用ls命令查看文件,可以发现列表分为几个部分,各自所代表的意义如图所示: 文件属性操作     chown 设置文件的所有者  &nb…

    Linux干货 2016-08-04
  • Linux进程管理

    进程管理     进程概念      内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、 安全功能等      Process: 运行中的程序的一个副本,是被载入内存的一个指令集合    &nb…

    Linux干货 2016-09-11
  • Centos 7 快速进入图形界面

    Centos 7 快速进入图形界面.pdf

    系统运维 2016-04-05
  • 马哥教育网络22期+第四周作业博客

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。    [root@centos-rpi3 skel]# cp -r /etc/skel /home/tuser1 && chmod -R g-rwx,o-rwx /home/tuser1 …

    Linux干货 2016-09-08
  • HTTP详解(2)-请求、响应、缓存

    1. HTTP请求格式              做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP协议传输的消息也是这样规定的…

    Linux干货 2015-04-04

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-10 22:23

    作业通过脚本方式实现,一方面练习了基础命令,另一方面也提高了脚本能力,非常赞