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)
luobo3692003luobo3692003
上一篇 2016-09-22
下一篇 2016-09-23

相关推荐

  • FTP服务初探

    FTP FTP概述 FTP原理和模式 vsftpd vsftpd基础服务搭建 vsftpd基于数据库的实现虚拟用户 vsftpd基于mysql实现虚拟用户 常见问题 FTP概述 什么是FTP? FTP是File Transfer Protocol 文件传输协议的缩写,基于网络来传输文件的应用层通信协议。 FTP的功能是什么? FTP能够通过网络来传输文件,因…

    Linux干货 2016-04-28
  • 沉舟侧畔千帆进,枯木头前万树春

    N21第五周博客作业 1、  显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ~]#  grep -E "^[[:space:]]+" //boot/grub/grub.conf root (hd0,0) kernel /vmlin…

    Linux干货 2016-07-29
  • DNS实验

    本实验需的注意问题:      1、运营商的服务器需要更改根指向服务器地址      2、根服务器上的配置文件/etc/named.conf需要将"."根区域禁用;      3、更改区域数据库文件的属组为named;c…

    Linux干货 2016-12-12
  • CentOS 系统启动流程[转载]

    Linux(CentOS)系统启动过程大致按照如下顺序: POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot–>/sb…

    Linux干货 2017-01-28
  • 计算机组成及Linux初识

    拼一载春秋,搏一生无悔 1. 计算机简介 2. Linux发行版简介 3. Linux哲学思想简介 4. Linux系统上获取命令帮助 5. Linux「12」个基础命令简介 6. Linux发行版基础目录及功能简介 1.计算机简介 电子计算机(英语:computer),亦称电脑,是一种利用「电子学…

    Linux干货 2016-10-27
  • 搭建CA服务器为Client签发证书

    搭建CA服务器为Client签发证书   此次实验步骤如下: 一、搭建CA服务器 1)  在/etc/pki/CA下创建index.txt文件,此文件是为Client签发证书的索引文件; 2)  在/etc/pki/CA下创建serial文件,此文件记录为Client签发证书的编号; 3)  生成CA服务器私钥; 4)…

    2017-05-21

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-10 22:23

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