3.用户和组管理

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

[root@localhost ~]# who
root     tty1         2016-12-12 04:15
root     pts/0        2016-12-12 11:10 (10.211.55.2)
root     pts/1        2016-12-12 11:12 (10.211.55.2)
zgx      pts/2        2016-12-12 11:16 (localhost)
(1)who | cut -d ' ' -f 1 | uniq
(2)who | cut -d ' ' -f 1 | sort -u
(3)who | awk '{print $1}' | uniq
(4)who | awk '{print $1}' | sort -u

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

(1)last | head -n 1
(2)who | tail -1

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

(1)cut -d ':' -f 7 /etc/passwd | sort  |uniq -c | sort -nr | head -1
(2)awk -F ':' '{print $7}' /etc/passwd | sort | uniq -c | sort -nr | head -1

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

sort -n -t ':' -k 3 /etc/passwd | tail -10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt

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

(1)ifconfig eth0 | grep 'inet\>' | awk '{print $2}'
(2)ifconfig eth0 | grep 'inet\>' | cut -d ' ' -f 10
(3)ifconfig eth0 | grep 'inet\>' | egrep -o '[[:digit:].]+' | head -1

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

ls -R /etc/ | grep '.*\.conf$' | tr 'a-z' 'A-Z' > /tmp/etc.conf

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

ls /var | wc -l

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

(1)sort -n -t ':' -k 3 /etc/group | head -n 10 | cut -d ':' -f 1
(2)sort -n -t ':' -k 3 /etc/group | head -10 | awk -F ':' '{print $1}'

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

cat /etc/fstab /etc/issue > /tmp/etc.test

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

       http://www.178linux.com/63758

   (1)、创建组distro,其GID为2016;

groupadd -g 2016 distro

   (2)、创建用户mandriva, 其ID号为1005;基本组为distro;

useradd -u 1005 -g distro mandriva

   (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

useradd -u 1100 -d  /home/linux mageia

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

echo 'mageedu' | passwd --stdin mageia

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

userdel mandriva

   (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

useradd -u 2002 -g distro  -G peguin slackware

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

usermod -s /bin/tcsh slackware

   (8)、为用户slackware新增附加组admins;

usermod -a -G  admins slackware

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

passwd -n 3 -x 180 -w 3 slackware

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

useradd -u 3003 -g  clouds -G peguin,nova openstack

   (11)、添加系统用户mysql,要求其shell为/sbin/nologin;

useradd -r -s /sbin/nologin mysql

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

echo 'openstack' | passwd --stdin openstack

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

(0)
N27_jiangyefanN27_jiangyefan
上一篇 2017-07-16 23:01
下一篇 2017-07-17 00:56

相关推荐

  • 常用文本处理工具及grep和正则表达式

    一、文件查看命令 (1)普通查看工具:cat,tac,rev  1、cat命令常用选项    -n:显示行号    -E:显示行结束符$    -A:显示所有控制符  2、tac:从最后一行开始倒序显示  3、rev:将每一行的内容反转显示   (2)分页查看…

    Linux干货 2016-08-11
  • > 输出重定向

    重定向输出 > >> 追加 目 录 1、 >正确定向等同于1> 2、 2> 错误定向 3. &> 把错误导成正确的{洗钱} 4. 正确的变成错误的 5. > 覆盖 6. 举一反三 最近学的命令中学到了一些很有意思的命令,分享一下 > 重定向输出 最…

    Linux干货 2017-08-13
  • Linux上glob用于实现文件名的通配、IO重定向及管道

    Linux中所谓的通配是指,显示以指定条件为条件的文件;即通配的含义是指搜寻以已知条件为前提的目标文件。 常用文件通配符有: 文件通配符 含义 例子 * 任意长度的任意字符 如a*,搜寻所有以a为首的文件名的文件 ? 任意的单一字符 如a?,搜索所有的以a开头的两个字符的文件名的文件 [] 匹配指定范围内的任意的单个字符 如[a-z],匹配任意单个字母(不区…

    Linux干货 2017-04-04
  • shell简单脚本

    Shell小脚本     一.       一. 简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系…

    Linux干货 2017-08-06
  • 8-5作业

    1、取本机ip地址 ifconfig |grep -E -o  '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])' 2、取各分区利…

    Linux干货 2016-08-08
  • Hive深入浅出

    1.  Hive是什么 1) Hive是什么? 这里引用 Hive wiki 上的介绍: Hive is a data warehouse infrastructure built on top of Hadoop. It provides tools to enable easy data ETL, a mechanism to put stru…

    Linux干货 2016-03-22

评论列表(1条)

  • 马哥教育
    马哥教育 2017-07-22 21:41

    看的出有下过一番功夫,再接再励。