用户及用户组管理使用的练习

用户及用户组管理使用的练习

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

先使用who得出登陆用户,通过uniq去重。

[root@mail ~]# who | grep -E -o "^[[:alnum:]]+"  | uniq 
root

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

思路:首先使用who取得最后系统的登陆用户,然后把结果通过命令过滤得到用户名,最后通过ID命令显示

方法1:
[root@mail ~]# id $( who | tail -n 1 | grep -E -o "^[[:alnum:]]+" )
uid=0(root) gid=0(root) 组=0(root)

方法2:用cut代替grep
[root@mail ~]# id $(who | tail -n 1 | cut -d' ' -f1 )
uid=0(root) gid=0(root) 组=0(root)
[root@mail ~]# 

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

思路:先把passwd的shell取出来通过管道送个uniq去重并计算,再通过sort排序,最后用head取出最高计次的结果。

方法1:
[root@mail ~]# grep -E "/*[[:alnum:]]+/*[[:alnum:]]+$" /etc/passwd -o  | uniq -cd | sort | head -n 1
     16 /sbin/nologin
方法2:
用cut替代grep
[root@mail ~]# cut -d: -f7 /etc/passwd  | uniq -cd | sort | head -n 1
     16 /sbin/nologin

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

思路:首先用cut命令把1和3列提取出来,通过sort利用分隔符以数字形式排序第2列的内容,再通过tail得到最大数值的用户,最后通过tr命令把小写字母换成大写并重定向/tmp/maxusers

[root@mail ~]# cut -d: -f1,3 /etc/passwd  | sort -t: -k2 -n | tail -n 10 | cut -d: -f1 | tr [a-z] [A-Z] > /tmp/maxusers.txt
[root@mail ~]# cat /tmp/maxusers.txt    //查看结果

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

思路:先使用grep过滤不需要的信息,然后通过cut命令进行切分,得出IP

ifconfig | grep "\<inet\>"  | grep "addr:[[:digit:]]*.*" -o | cut -d' ' -f1 | cut -d: -f2

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

思路:先找出文件然后通过tr命令转换并重定向文件中

[root@mail ~]# ls /etc/*.conf | tr [a-z] [A-Z] > /tmp/etc.conf
[root@mail ~]# cat /tmp/etc.conf 

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

思路:通过wc统计行即可

[root@mail ~]# ls /var -l | wc -l
19

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

思路:用cut分割先取出排序内容,通过sort排序最后用head取出前10行即可

[root@mail ~]# cut -d: -f1,3 /etc/group | sort -t: -n -k2 | head 

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

思路:cat能同时打开多个文件,重定向到文件即可。

[root@mail ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
[root@mail ~]# cat /tmp/etc.test 

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

  1. 创建组distro,其GID为2016;
[root@mail ~]# groupadd -g 2016 distro
[root@mail ~]# cat /etc/group | grep distro 
distro:x:2016:
  1. 创建用户mandriva, 其ID号为1005;基本组为distro;
[root@mail ~]# useradd -u 1005 -g distro mandriva
[root@mail ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 组=2016(distro)
  1. 创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@mail ~]# useradd -u 1100 -m -d /home/linux mageia
[root@mail ~]# cat /etc/passwd | grep mageia
mageia:x:1100:1100::/home/linux:/bin/bash
  1. 给用户mageia添加密码,密码为mageedu;
[root@mail ~]# echo "mageedu" | passwd --stdin mageia
更改用户 mageia 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

5.删除mandriva,但保留其家目录;

[root@mail ~]# userdel mandriva 
[root@mail ~]# ls /home/mandriva -d
/home/mandriva
  1. 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@mail ~]# useradd -g distro -G peguin -u 2002 slackware
[root@mail ~]# cat /etc/passwd | grep slackware
slackware:x:2002:2016::/home/slackware:/bin/bash
[root@mail ~]# cat /etc/group | grep peguin
peguin:x:5001:gentoo,slackware
[root@mail ~]# cat /etc/group | grep distro 
distro:x:2016:
  1. 修改slackware的默认shell为/bin/zsh;
[root@mail ~]# usermod -s /bin/zsh slackware
[root@mail ~]# cat /etc/passwd | grep slackware
slackware:x:2002:2016::/home/slackware:/bin/zsh

8.为用户slackware新增附加组admins;

[root@mail ~]# groupadd admins
[root@mail ~]# usermod -G admins slackware
[root@mail ~]# cat /etc/group | grep admins
admins:x:5003:slackware

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

(0)
oneeonee
上一篇 2018-03-18 18:39
下一篇 2018-03-18 20:51

相关推荐

  • apache自动化脚本搭建虚拟主机

    1 基于主机名实现三个虚拟主机 (1).创建网站目录与测试文件 (2).创建虚拟主机文件(目录为/etc/httpd/conf.d/下)   (3).修改测试apache主机hosts文件(就不用DNS服务器解析,方便测试),测试httpd配置文件是否有问题,重启httpd服务   (4)修改测试主机hosts文件(就不用DNS服务器解析…

    Linux干货 2016-10-09
  • tcpdump输出详解

    在这里不得不再吐槽下国内整个IT粗糙浮躁,度娘下来的中文文档几尽抄袭~google下来的文档英文文档质量远高于国内中文文档.用ie或没有安装插件的浏览器访问,不然可能会有其它访问请求数据干扰分析 IP数据包结构 TCP数据包结构 // tcpdump需root权限 # tcpdump -x -i eth1 i…

    Linux干货 2015-04-15
  • redis-cli的一些有趣也很有用的功能

    redis-cli我们最常用的三个参数就是-h、-p、-a选项,分配用来指定连接的redis-server的host、port和登录密码。 通过redis-cli –help发现,redis-cli还提供了其他很多的参数和功能。 1)-x-x选项从标准输入(stdin)读取最后一个参数。 比如从管道中读取输入: echo -en “chen.qun” | r…

    Linux干货 2015-03-16
  • 实例;编译安装apache 2.2,并启动此服务

    基于c语言的源代码编译安装,通常有三个步骤     ./configure         (1)通过选项传递参数,指定启用特性,安装路径等:执行时会参考用户的指定以及makefile.in文件生成makefile.  &nbsp…

    Linux干货 2016-08-24
  • 虚拟机的三种网络模式

    前言     虚拟机的网络模式,是环境部署时的重要环节。不同的运行环境对网络的要求也是不用的,本章节重点介绍虚拟机的三种网络模式、以及他们之间的区别 虚拟机网络模式      无论是vmware,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2…

    2017-07-11
  • 马哥教育网络21期+第十二周练习博客上

    1、请描述一次完整的http请求处理过程; (1)建立或处理连接:接受请求或拒绝请求 (2)如果接受请求:     并发访问响应模型:         单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应; &…

    Linux干货 2016-10-17