Linux第三周学习博客作业

对第三周学习的内容进行总结

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

代码及运行结果如下

~]$ who | cut -d" " -f1 | uniq
root
sky

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

~]$ cat /etc/passwd | grep "^`who | sort -k3 | tail -1 | cut -d" " -f1`"
root:x:0:0:root:/root:/bin/bash

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

~]$ cat /etc/passwd | cut -d":" -f7 | sort | uniq -c | sort -n | tail -1 | grep -o "[^/]\+$"
nologin

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

~]$ cat /etc/passwd | sort -nt":" -k3 | tail -10 | tr "a-z" "A-Z" > /tmp/maxusers.txt
~]$ cat /tmp/maxusers.txt
MARIADB:X:997:995::/HOME/MARIADB:/SBIN/NOLOGIN
CHRONY:X:998:996::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
POLKITD:X:999:997:USER FOR POLKITD:/:/SBIN/NOLOGIN
SKY:X:1000:1000:SKY:/HOME/SKY:/BIN/BASH
FEDORA:X:1002:1002:FEDORA CORE:/HOME/FEDORA:/BIN/SH
GENTOO:X:1003:1003::/USERS/GENTOO:/BIN/BASH
CENTOS:X:1004:1004::/HOME/CENTOS:/BIN/BASH
SKY1:X:1005:1005::/HOME/SKY1:/BIN/BASH
SKY2:X:1006:1006::/HOME/SKY2:/BIN/BASH
ARCHLINUX:X:1007:1007::/LVUSERS/ARCHLINUX/:/BIN/BASH

取出当前主机的IP地址

~]$ ifconfig | grep "broadcast" | grep -o "inet.*" | cut -d" " -f2
192.168.31.113

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

~]$ ls /etc/*.conf | grep -o "[^/]\+$" | tr [a-z] [A-Z] > /tmp/etc.conf
~]$ cat /tmp/etc.conf
ASOUND.CONF
CHRONY.CONF
DRACUT.CONF
E2FSCK.CONF
FUSE.CONF
GEOIP.CONF
HOST.CONF
KDUMP.CONF
KRB5.CONF
LD.SO.CONF
LIBAUDIT.CONF
LIBUSER.CONF
LOCALE.CONF
LOGROTATE.CONF
MAN_DB.CONF
MKE2FS.CONF
NSSWITCH.CONF
RESOLV.CONF
RSYNCD.CONF
RSYSLOG.CONF
SESTATUS.CONF
SUDO.CONF
SUDO-LDAP.CONF
SYSCTL.CONF
TCSD.CONF
UPDATEDB.CONF
VCONSOLE.CONF
YUM.CONF

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

~]$ ls -d /var/* | wc -l
20

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

~]$ cat /etc/group | sort -nt":" -k3 | head -10 | cut -d":" -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

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

~]$ cat /etc/fstab /etc/issue > /tmp/etc.test
~]$ cat /tmp/etc.test

#
# /etc/fstab
# Created by anaconda on Tue Oct 10 18:33:44 2017
#
# 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
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/cdrom              /media/cdrom            iso9660 ro              0 0
\S
Kernel \r on an \m

总结描述用户和组管理类命令的使用方法

用户和组管理命令总结

  1. useradd命令:用于添加用户
  • useradd [option] USERNAME 使用格式
  • -u选项 : 指定UID
  • -g选项 : 指定基本组
  • -G GROUP1,GROUP2… : 指定用户的附加组, 可以是多个
  • -r选项 : 添加系统用户(UID在1000+ centos7, 500+ centos6)
  • -d选项 : 指定家目录
  • -s选项 : 指定默认shell
  • -c选项 : 设置用户的注释信息
  • -D选项 : 设置添加用户的默认设置(即/etc/default/useradd文件中的选项)
  1. userdel命令:删除用户
  • userdel [option] USERNAME 使用格式
  • -r选项 : 递归删除,可以在删除用户的同时,同时删除与该用户相关的家目录文件
  1. groupadd命令:用与添加组
  • groupadd [option] GROUPNAME 使用格式
  • -g选项 : 指定GID
  • -r选项 : 添加系统组(GID在1000+ centos7, 500+ centos6)
  1. groupdel命令:删除组
  • groupdel [option] GROUPNAME 使用格式
  1. id命令:查看用户信息
  • id [option] USERNAME 使用格式
  • -u选项 : 显示UID
  • -g选项 : 显示GID
  • -G选项 : 显示附加组的GID
  • -n选项 : 显示名字,与-ugG连用
显示用户sky1的附加组的名字
~]$ id -Gn sky1
  1. su命令:切换用户
  • su – USERNAME : 登录式切换用户,会重新读取目标用户的配置文件
  • su USERNAME : 非登录式切换,不会重新读取用户的配置文件
  • su [-] USERNAME -c COMMAND : 使用目标用户的身份运行指令
  1. usermod命令:修改用户属性
  • usermod [option] USERNAME 使用格式
  • -u选项 : 修改UID
  • -g选项 : 修改GID
  • -G GROUP1,GROUP2… : 指定用户的附加组,可以指定多个组,与-a选项连用不会覆盖用户原来指定的附加组信息
  • -l选项 : 修改用户的名字
  • -s选项 : 修改用户的默认shell
  • -c选项 : 修改用户的注释信息
  • -d选项 : 修改用户的家目录
  • -L选项 : 锁定用户
  • -U选项 : 解锁用户
  • -e选项 : 修改用户账户的过期时间
  • -f选项 : 修改用户的非活动时间
为用户sky1追加附加组sky,sky2
~]$ usermod -aG sky,sky2 sky1
修改用户sky1在密码过期的7天后被锁定
~]$ usermod -f 7 sky1
  1. groupmod命令:修改组属性
  • groupmod [option] GROUPNAME 使用格式
  • -g选项 : 修改组的GID
  • -n选项 : 修改组的名字
  1. passwd命令:设置用户的密码
  • passwd [option] USERNAME : 不加选项时就是设置用户的密码
  • -l选项 : 锁定用户
  • -u选项 : 解锁用户
  • -d选项 : 删除用户密码
  • -n选项 : 设置最短使用期限
  • -x选项 : 设置最长使用期限
  • -w选项 : 设置提前多少天警告
  • -i选项 : 设置非活动期限
  • –stdin选项 : 从标准输入接收用户密码
设置sky1用户密码到期提前5天警告
~]$ passwd -w sky1
设置"password"为用户sky1的密码
~]$ echo "password" | passwd --stdin sky1
  1. gpasswd命令:用于设置组密码及添加修改用户的附加组
  • gpasswd [option] GROUPNAME : 不加选项时就是设置该组的密码
  • gpasswd -r GROUPNAME : 删除组的密码
  • gpasswd -a USERNAME GROUPNAME : 添加用户到指定的组,同时保留以前添加的组
  • gpasswd -d USERNAME GROUPNAME : 从指定的组中删除用户
  • gpasswd -A USERNAME GROUPNAME : 指定某用户为该组的管理员
  1. chage命令:修改关于用户密码的一些属性
  • chage [option] USERNAME 命令格式
  • -d选项 : 修改用户最近一次修改密码的时间
  • -E选项 : 修改用户的账号到期时间
  • -I选项 : 修改用户的非活动期限
设置用户sky1的非活动期限为5天
~]$ chage -I 5 sky1
  1. newgrp命令:临时切换基本组
  • newgrp GROUPNAME 如果用户不属于这个组,则需要输入该组的密码

用户和组管理练习

  1. 创建组distro,其GID为2016
~]# groupadd -g 2016 distro
~]# cat /etc/group | grep distro
distro:x:2016:
  1. 创建用户mandriva,其ID号为1005;基本组为distro
~]# useradd -u 1005 -g distro mandriva
~]# cat /etc/passwd | grep mandriva
mandriva:x:1005:2016::/home/mandriva:/bin/bash
  1. 创建用户mageia,其ID号为1100,家目录为/home/linux
~]# useradd -u 1100 -d /home/linux mageia
~]# cat /etc/passwd | grep mageia
mageia:x:1100:1100::/home/linux:/bin/bash
  1. 给用户mageia添加密码,密码为mageedu
~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
  1. 删除mandriva,但保留其家目录
~]# userdel mandriva
~]# cat /etc/passwd | grep "mandriva"
~]# ls -a /home/mandriva
.  ..  .bash_logout  .bash_profile  .bashrc  .zshrc
  1. 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin
~]# useradd -u 2002 -g distro -G peguin slackware
~]# cat /etc/passwd /etc/group | grep -E "slackware|distro"
slackware:x:2002:2016::/home/slackware:/bin/bash
peguin:x:5001:slackware
distro:x:2016:
  1. 修改slackware的默认shell为/bin/tcsh
~]# usermod -s /bin/tcsh slackware
~]# cat /etc/passwd | grep "slackware"
slackware:x:2002:2016::/home/slackware:/bin/tcsh
  1. 为用户slackware新增附加组admins
~]# groupadd admins
~]# usermod -aG admins slackware
~]# cat /etc/group | grep "slackware"
peguin:x:5001:slackware
admins:x:5003:slackware

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90200

(0)
skysky
上一篇 2017-12-16
下一篇 2017-12-17

相关推荐

  • awk中pipe的shell命令调用与close()

        某公司其员工到勤时间表如下, 取名为 arr.dat, 文件中第一栏为员工代号, 第二栏为到达时间. 本示例中将使用该文件为数据示例文件, 1034 7:26 1025 7:27 1101 7:32 1006 7:45 1012 7:46 1028 7:49 1051 7:51 1029 7:57 1042 7…

    Linux干货 2016-11-11
  • Shell脚本编程之入门基础(一)

    Shell脚本编程   一、本章节一内容:    编程基础    脚本基本格式    变量    运算    条件测试   在本章节开始之前,我们先回顾下前面的知识点内容。前面学习了Linux的基础入门,了解到计算机是运行二进制指令的,而我…

    Linux干货 2016-08-12
  • 可伸缩的逻辑卷

    什么是逻辑卷? 逻辑卷简称LVM, LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.   为什么要使用逻辑卷? 逻辑卷相比于一般的磁盘分区, 具有更高的灵活性。可随时伸缩空间的大小.   构建逻辑分区图:   逻辑卷概念: PV(物理卷): 是在…

    Linux干货 2016-09-01
  • 位置变量;if;for循环

    向脚本传递参数就是用位置参数变量实现 传递给命令的参数称为位置参数  ls  /etc/var Myscript.sh  argu1 argu2 ….${10}  ${11}…   引用方式 :$1就是引用整个脚本位置参数的第一个,第一个会自动保存在$1中  &nb…

    Linux干货 2016-08-15
  • RHCE系列之ntp服务器—-实践篇

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1319520 上篇Linux实战部署系列之ntp服务器—-理论篇为大家介绍时间的相关概念和ntp的原理,本篇博文将带大家一起部署生产环境中实现简单…

    Linux干货 2016-08-15
  • N21—-第一周课程练习题

    1、描述计算机的组成及其功能。 我们现在通常理解为计算机是由硬件系统+软件系统组成的,根据冯·诺依曼体系结构。计算机主要由五大部件组成:      运算器(Datapath): 计算机中执行各种算术和逻辑运算操作的部件      控制器(Control):是整个计算机的中枢神经,…

    Linux干货 2016-07-12

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-07 16:22

    内容上基本没有什么问题,排版也比较清晰~~继续加油哈