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 20:31
下一篇 2017-12-17 16:15

相关推荐

  • CentOS启动流程排错

    grub legacy配置文件:/boot/grub/grub.conf     default=#: 设定默认启动的菜单项;落单项(title)编号从0开始      timeout=#:指定菜单项等待选项选择的时长     &…

    Linux干货 2016-09-13
  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-29
  • vim文本编辑器简单用法

    vim最基础的用法

    2017-09-09
  • ipvsadm配置命令

    Ipvsadm配置   ipvsadm/ipvs: 集群和集群之上的各RS是分开管理的; 集群定义 RS定义 ipvs:内核基本都自动编译上了 ~]# grep -i -C 10 “ipvs” /boot/config-VERSION-RELEASE.x86_64     支持的协议:…

    Linux干货 2017-05-17
  • Leetcode 编程训练

    Leetcode这个网站上的题都是一些经典的公司用来面试应聘者的面试题,很多人通过刷这些题来应聘一些喜欢面试算法的公司,比如:Google、微软、Facebook、Amazon之类的这些公司,基本上是应试教育的功利主义。 我做这些题目的不是为了要去应聘这些公司,而是为了锻炼一下自己的算法和编程能力。因为我开始工作的时候基本没有这样的训练算法和编程的网站,除了…

    Linux干货 2016-08-15
  • LVS四种模式

    马哥教育网络班18期 第17周课程练习1 LVS工作模式图解 LVS-NAT模式 TCP请求报文的目的IP地址被Director调度服务器重写为RIP后发送给RS,RS的默认网关配置为Director的DIP,Director接受到RS响应报文后修改源IP地址发送给用户IP RS网关指向DIP,RIP,DIP和RIP必须在同一网段内 Director转发请求…

    Linux干货 2016-06-23

评论列表(1条)

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

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