第三天作业

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

[root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq

[root@localhost ~]# who

(unknown) :0           2016-08-29 08:28 (:0)

root     pts/0        2016-08-29 08:36 (192.168.12.1)

root     pts/1        2016-08-29 09:12 (192.168.12.1)

[root@localhost ~]# who | cut -d ' ' -f1

(unknown)

root

root

[root@localhost ~]# who | cut -d ' ' -f1 | sort

root

root

(unknown)

[root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq

root

(unknown)

[root@localhost ~]# 

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

[root@localhost ~]# id $(who | tail -1 | cut -d ' ' -f1) 

uid=1000(ttxsjh) gid=1000(ttxsjh) 组=1000(ttxsjh),10(wheel)

[root@localhost ~]# 

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

[root@localhost ~]# cat /etc/passwd | cut -d':' -f7 | tail -1

/bin/bash

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

[root@localhost ~]# cat /etc/passwd | sort -t ':' -k 3n | tail -10 | tr a-z A-Z > /tmp/maxusers.txt

[root@localhost ~]# cat /tmp/maxusers.txt 

USER2:X:2019:2019::/HOME/USER2:/BIN/BASH

USER9:X:2020:2020::/HOME/USER9:/BIN/BASH

USER10:X:2021:2021::/HOME/USER10:/BIN/BASH

USER112:X:2022:2022::/HOME/USER112:/BIN/BASH

USER14:X:2023:2023::/HOME/USER14:/BIN/BASH

USER15:X:2024:2024::/HOME/USER15:/BIN/BASH

USER20:X:2025:2025::/HOME/USER20:/BIN/BASH

USER18:X:2026:2026::/HOME/USER18:/BIN/BASH

USER19:X:2027:2027::/HOME/USER19:/BIN/BASH

NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN

[root@localhost ~]# 

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

[root@localhost ~]# ifconfig  | cut -d ' ' -f10 | grep "[.]" 

192.168.12.11

127.0.0.1

[root@localhost ~]#

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

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

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

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

31

[root@localhost ~]# 

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

[root@localhost ~]# cat /etc/group | sort -t ':' -k 3n | head -10 | cut -d':' -f1

root

bin

daemon

sys

adm

tty

disk

lp

mem

kmem

[root@localhost ~]# 

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

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


10、用户和组命令描述

  用户和组文件描述

   /etc/passwd 用户信息库

     name:password:UID:GID:GECOS:directory:shell

     name:用户名、password:密码占位符、UID、GID:用户基本组ID、GECOS:用户描述信息、directory:用户的家目录、shell:用户默认shell

              

   /etc/shadow 用户密码文件

     centos:$6$jOzyjCBk$XmsBHJjmRL095pTsH6hc3onGHiIzym.:16974:0:99999:7:::

     centos:登录名、$6$jOzyjCBk$XmsBHJjmRL095pTsH6hc3onGHiIzym:加密了的密码、16974:最后一次更改密码的日期、0:密码的最小年龄、99999:最大密码年龄、7:密码警告时间段、密码禁用期、账户过期日期、保留字段

   /etc/group 组的信息库

   group_name:password:GID:user_list

   group_name:组名、password:组密码:GID、user_list:该组的用户成员,以此组为附加组的用户的用户的列表

           

   /etc/gshadow:组的密码文件

   user3:!::

   user3:组名、!:密码占位符、管理员、成员

 用户和组命令描述

     useradd 添加用户

         -u, –uidUID          指定UID

         -g, –gidGROUP         指定GID,组名必须事先存在

         -G, –groupsGROUP1[,GROUP2,…[,GROUPN]]]  指定附加组,默认用户只属于初始组,

-a 和-G联合使用 追加新的附加组

         -a, –append          将用户添加到附加组。只能和 -G 选项一起使用

         -d, –home  HOME_DIR    修改家目录和,默认不复制原有家目录类容和-m联合使用用于将原有文件移动到新的家目录

         -s, –shell SHELL       指定SHELL

         -L, –lock      锁定用户密码;-U –unlock  解锁用户的密码

         -c, –comment COMMENT    修改注释信息

         -r, –system          创建系统账号

         -f, –inactiveINACTIVE   密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能

    userdel – 删除用户账户和相关文件

         -f, –force           强制删除用户账户

        -r, –remove           删除用户的家目录,默认不删除

    usermod – 修改一个用户账户

         -a, –append          将用户添加到附加组。只能和 -G 选项一起使用

         -u, –uidUID          修改UID

         -g, –gidGROUP         修改GID

         -f, –inactiveINACTIV    密码过期之后,账户被彻底禁用之前的天数,0 表示密码过期时,立即禁用账户;-1 表示不使用这个功能

         -d, –homeHOME_DIR       修改家目录

         -m, –move-home         将用户的主目录移动到新位置。 这个选项只有和 -d (或 –home) 选项组合使用时才有效   

         -s, –shellSHELL        用户的新登录 shell 的名称

         -U, –unlock           解锁用户的密码

         -L, –lock            锁定用户的密码

     groupadd 添加组

         -g GID              指定GID    默认是上一个组的GID+1

         -r                 创建系统组,每一个进程在运行的时候都是以一个用户的身份在运行。开机就运行的程序以系统用户的身份在运行,为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常还需要为此创建多个普通用户,这类用户从不用登陆系统。

     groupdel  删除组

         groupdel [选项] GROUP

     groupmod 修改组属性

         groupmod [选项] GROUP

         -g GID               修改GID

         -n  new_name          修改组名

     passwd 修改用户密码

        passwd  不带任何参数 修改自己的密码

        passwd USERNAME 修改指定用户的密码;只有管理员root有此权限

              -l ,-u              锁定和解锁用户密码

              -d                  清除用户密码串

              -e  DATE             过期期限,日期

              -i   DAYS            非活动期限

              -n  DAYS             密码的最短使用期限

              -x  DAYS             密码最长使用期限             

              -w DAYS              警告时间

              –stdin              echo"PASSWORD" | passwd –stdin USERNAME

     gpasswd  给组添加密码 不带参数默认给自己添加密码

              -a USERNAME            向组中添加用户

              -d USERNAME            向组中删除密码

     id  显示用户的实际和有效ID

              id [OPTION]… [USER]

             不带任何参数表示显示自己

              -u   显示UID

              -g   仅显示用户基本组ID

              -G  显示用户所属组的所有组ID

              -n   显示名称

     su  switch user 切换用户

      登录式切换           会通过读取目标用户的配置文件来重新初始化

             su – USERNAME

             su -l USERNAME

      非登录式切换       不会通过读取目标用户的配置文件来重新初始化

             su USERNAME

  注意:管理员切换到任何用户时无需密码。

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

[root@localhost ~]# groupadd -g 2016 distro

[root@localhost ~]# cat /etc/group | grep "2016"

distro:x:2016:

    (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)

[root@localhost ~]#

    (3) 创建用户magedia 其ID为1100 家目录为/home/linux

[root@localhost ~]# useradd -u 1100 -d /home/linux mageia

[root@localhost ~]# cat /etc/passwd | grep "mageia"

mageia:x:1100:1100::/home/linux:/bin/bash

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

[root@localhost ~]# passwd mageia

更改用户 mageia 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[ttxsjh@localhost ~]$ su – mageia

密码:

上一次登录:一 8月 29 21:21:10 CST 2016pts/0 上

[mageia@localhost ~]$ 

    (5)删除用户mandriva,但保留其加目录

[root@localhost ~]# userdel mandriva

[root@localhost ~]# ls /home/ | grep "mandriva"

mandriva

[root@localhost ~]# 

    (6) 创建用户slackware 其ID为2002,基本组为ditro,附件组peguin

[root@localhost ~]# groupadd peguin

[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware

[root@localhost ~]# cat /etc/passwd | grep "slackware"

slackware:x:2002:2016::/home/slackware:/bin/bash

[root@localhost ~]# cat /etc/group | grep "peguin"

peguin:x:3006:slackware

[root@localhost ~]# cat /etc/group | grep "slackware"

peguin:x:3006:slackware

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

[root@localhost ~]# usermod -s /bin/tcsh slackware

[root@localhost ~]# cat /etc/passwd | grep "slackware"

slackware:x:2002:2016::/home/slackware:/bin/tcsh

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

[root@localhost ~]# usermod -aG admins slackware

[root@localhost ~]# cat /etc/group | grep "slackware"

peguin:x:3006:slackware

admins:x:3007:slackware

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

[root@localhost ~]# chage slackware 

正在为 slackware 修改年龄信息

请输入新值,或直接敲回车键以使用默认值

最小密码年龄 [0]: 3

最大密码年龄 [99999]: 180

最近一次密码修改时间 (YYYY-MM-DD) [2016-08-29]: 

密码过期警告 [7]: 3

密码失效 [-1]: 

帐户过期时间 (YYYY-MM-DD) [-1]:

[root@localhost ~]# cat /etc/shadow | grep "slackware"

slackware:!!:17042:3:180:3:::

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

[root@localhost ~]# useradd -u 3003 -g clouds -G peguid,nova openstack

[root@localhost ~]# id openstack

uid=3003(openstack) gid=3010(clouds) 组=3010(clouds),3008(peguid),3009(nova)

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

[root@localhost ~]# useradd -r mysql -s /bin/nologin

[root@localhost ~]# id mysql

uid=991(mysql) gid=989(mysql) 组=989(mysql)

[root@localhost ~]# cat /etc/passwd | grep "mysql"

mysql:x:991:989::/home/mysql:/bin/nologin

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

[root@localhost ~]# echo "openstack" | passwd –stdin openstack

更改用户 openstack 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@localhost ~]#

                    

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

(0)
ttxsjhttxsjh
上一篇 2016-08-30
下一篇 2016-08-30

相关推荐

  • GREP命令学习笔记

    GREP命令,全称:Global search REgular expression and Print out the line. 是一个非常强大的文本搜索命令,与SED(stream editor,文本编辑工具)和AWK(文本分析、报告生成器)并称文本处理三剑客。 一.GREP命令基本使用格式 grep [OPTIONS] PATTERN [FILE&#…

    Linux干货 2016-06-22
  • LVS

    一 LVS工作原理 1. lvs-nat模型 lvs-nat:多目标的DNAT, 通过将请求报文中的目标地址和目标端口修改为挑选出的某RS的RIP和PORT 实现转发。 (1) RIP和DIP必须在同一IP网络,且应该使用私有地址,RS的网络要指向DIP(保证响应报文必须由VS); (2) 请求报文和响应报文都经由Director转发,较…

    Linux干货 2016-12-06
  • Shell脚本编程之入门基础(二)if、case的使用

    Shell编程之条件选择和条件判断   一、条件选择(if)与条件判断(case)的对比: if语句:是选择执行,if语句可嵌套。 if条件选择使用格式 单分支 双分支 多分支 if 判断条件;then 条件为真的分支代码 fi if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi if CONDITION1; the…

    Linux干货 2016-08-15
  • 文本编辑器—sed

    一、sed介绍 sed 一种流式编辑器。一个流式编辑器通常对来自输入流(一个文件或者是管道的输入)的文本进行转换处理。在某些方面类似支持脚本编辑的编辑器,sed在多输入情况下只开放一个通道工作,因此更加效率。sed与其他编辑器最大的区别在于,能对管道输入的文本进行过滤处理。 二、sed工作机制 sed保持两个数据缓冲区:主要活动的模式空间,以及辅助性的保持空…

    Linux干货 2016-08-12
  • MySQL 简述

    1 概述
    2 安装
    3 数据库的操作
    4 注意事项

    Linux干货 2017-09-25
  • 关于nginx状态监控字段的个人见解(求真相)

    今天看到了马哥视频其中一节对nginx状态监控信息的介绍,对视频ppt上的监控字段解析产生了一些疑问,ppt内容如下: active connections – 活跃的连接数量server accepts handled requests — 总共处理了xxx个连接 , 成功创建xxx次握手, 总共处理了xxx个请求reading — 读取客户端的连接数.w…

    Linux干货 2016-07-12

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-13 23:07

    点一下第5题,可以使用精确的正则表达式来匹配IP,使用这种方法最佳哈。
    另外,排版上面需要再改善下。加油~