马哥教育网络班20期+第3周课程练习

马哥教育网络班20期+第3周课程练习

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

# who | cut -d' ' -f1 | sort -u

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

# id $(who | tail -1 | cut -d' ' -f1)

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

# cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n | tail -1 | cut -d' ' -f7

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

# sort -t: -k3 -n /etc/passwd | tail -10 | tr ‘a-z’ ’A-Z‘ > /tmp/maxusers.txt

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

# ifconfig | head -2 | tail -1 | cut -d: -f2 | tr -d "Bcast"

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

# ls /etc/*.conf | egrep -o "[^/]+/?$" | tr ’a-z‘ ’A-Z‘ > /tmp/etc.conf

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

# ls /var | wc -l

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

# sort -t: -k3 -n /etc/group | head -10 | cut -d: -f1

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

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

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

用户和组相关的管理命令

  用户创建:useradd 

  格式

    useradd [options] LOGIN

  常用选项

    -u UID: 指明用户UID号

    -g GID:指明用户所属基本组,可为组名,也可以GID号

    -c "COMMENT":用户的注释信息,一般表示用户全名

    -d /PATH/TO/HOEM_DIR:以指定的路径为家目录

    -s SHELL:指明用户的默认shell程序,可用列表在/etc/shells文件中

    -G [GROUP1[,GROUP2,…[GROUPN]]]:为用户指明附加组

    -r: 创建系统用户

  用户属性修改:usermod

  格式

    usermod [OPTION] login

  常用选项

    -u UID:新UID

    -g GID:新基本组

    -G [GROUP1[,GROUP2,…[GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append

    -s SHELL:新的默认SHELL

    -c 'COMMENT':新的注释信息

    -d HOME:新的家目录,原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;

    -l login_name:新的名字

    -L:锁定指定用户

    -U:解锁指定用户

    -e YYYY-MM-DD:指明用户账号过期日期

    -f INACTIVE:设定非活动期限

  给用户添加密码:passwd

  格式

    passwd [OPTIONS] UserName

  常用选项

    -l:锁定指定用户

    -u:解锁指定用户

    -n mindays:指定最短使用期限

    -x maxdays:最大使用期限

    -w warndays:提前多少天开始警告

    -i inactivedays:非活动期限

    –stdin:从标准输入接收用户密码

  删除用户:userdel

  格式

    userdel [OPTION]…login

  常用选项

    -r:删除用户家目录

  查看用户相关的ID信息:id

  格式

    id [OPTION]…[USER]

  常用选项

    -u:UID

    -g:GID

    -G:Groups

    -n:name    

  切换用户或以其他用户身份执行命令:su

  格式

    su [OPTION]… [-] [USER [ARG]…]

  切换用户的方式:

    su UserName:非登录式切换

    su – userName:登录式切换

  以指定用户执行命令:

    su [-] UserName -c 'COMMAND'

  常用选项

    -l:"su -l UserName" 相当于"su – UserName"    

  修改用户属性:chage

  格式

    chage [OPTION]… LOGIN

  常用选项

    -d LAST_DAY:最近一次修改密码的时间

    -E, –expiredate EXPIRE_DATE:修改账号的过期期限

    -I, –inactive INACTIVE:非活动期限

    -m, –mindays MIN_DAYS:密码的最小使用天数

    -M, –maxdays MAX_DAYS:密码的最大使用天数

    -W, –warndays WARN_DAYS:警告期限

  修改用户登录shell:chsh

  格式

    chsh [-s shell] [-l] [-u] [-v] [username]

  常用选项

    -s:指定登录shell

    -l:打印出/etc/shells下的shell列表并退出    

  修改用户详细资料:chfn

  格式

    chfn  [-f  full-name]  [-o  office]  ,RB [ -p office-phone] [-h home-phone] -u] [-v] [username]

  常用选项

    -f:指定全名

    -o:指定办公室号码

    -p:指定办公电话

    -h:指定家庭电话  

  组创建命令: groupadd

  格式

    groupadd [OPTION]… group_name

  常用选项

    -g GID: 指明GID号

    -r:创建系统组    

  组属性修改:groupmod

  格式

    groupmod [OPTION]…group

  常用选项

    -n group_name:新名字

    -g GID:新的GID

  组删除:groupdel

  格式

    groupdel GROUP

  组密码:gpasswd

  格式

    gpasswd [OPTION] GROUP

  常用选项

    -a user:将user添加至指定组中

    -d user:删除用户user的以当前组为组名的附加组

    -A user1,user2,…:设置有管理权限的用户列表

  newgrp命令:临时切换基本组

  格式

    newgrp [-] [group]

  常用选项

    -:读取用户的配置文件

  pwck:检查密码文件的完整性

  格式

   pwck [options] [passwd [ shadow ]]

  常用选项

   -s,–sort:以UID排序

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

# groupadd -g 2016 distro

   实例演示:

[root@C664BSLab ~]# groupadd -g 2016 distro
[root@C664BSLab ~]# cat /etc/group | tail -1
distro:x:2016:

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

# useradd -u 1005 -g distro mandriva

   实例演示:

[root@C664BSLab ~]# useradd -u 1005 -g distro mandriva
[root@C664BSLab ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) groups=2016(distro)

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

# useradd -u 1100 -d /home/linux mageia

   实例演示:    

[root@C664BSLab ~]# useradd -u 1100 -d /home/liunx mageia
[root@C664BSLab ~]# cat /etc/passwd | tail -1
mageia:x:1100:1100::/home/liunx:/bin/bash

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

# echo "mageedu" | passwd --stdin mageia

   实例演示:    

[root@C664BSLab ~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.

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

# userdel mandriva

   实例演示:    

[root@C664BSLab ~]# userdel mandriva
[root@C664BSLab ~]# ls /home | grep mandriva
mandriva

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

# groupadd peguin
# useradd -u 2002 -g distro -G peguin slackware

   实例演示:    

[root@C664BSLab ~]# groupadd peguin
[root@C664BSLab ~]# cat /etc/group | tail -1
peguin:x:2017:
[root@C664BSLab ~]# useradd -u 2002 -g distro -G peguin slackware
[root@C664BSLab ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin)

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

# usermod -s /bin/tcsh slackware

   实例演示:

[root@C664BSLab ~]# usermod -s /bin/tcsh slackware
[root@C664BSLab ~]# cat /etc/passwd | tail -1
slackware:x:2002:2016::/home/slackware:/bin/tcsh

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

# groupadd  admins
# usermod -a -G admins slackware

   实例演示:

[root@C664BSLab ~]# groupadd admins
[root@C664BSLab ~]# usermod -a -G admins slackware
[root@C664BSLab ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin),2018(admins)

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

# echo "slackware" | passwd --stdin -n 3 -x 180 -w 3 slackware

   实例演示:    

[root@C664BSLab ~]# echo "slackware" | passwd -n 3 -x 180 -w 3  --stdin slackware
Adjusting aging data for user slackware.
passwd: Success
[root@C664BSLab ~]# cat /etc/shadow | grep slackware
slackware:!!:16977:3:180:3:::

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

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

   实例演示:

[root@C664BSLab ~]# groupadd clouds
[root@C664BSLab ~]# cat /etc/group | tail -1
clouds:x:2019:
[root@C664BSLab ~]# groupadd nova
[root@C664BSLab ~]# cat /etc/group | tail -1
nova:x:2020:
[root@C664BSLab ~]# useradd -u 3003 -g clouds -G peguin,nova openstack
[root@C664BSLab ~]# id openstack
uid=3003(openstack) gid=2019(clouds) groups=2019(clouds),2017(peguin),2020(nova)

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

# useradd -r -s /sbin/nologin mysql

   实例演示:

[root@C664BSLab ~]# useradd -r -s /sbin/nologin mysql
[root@C664BSLab ~]# cat /etc/passwd | tail -1
mysql:x:498:498::/home/mysql:/sbin/nologin

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

# echo "openstack" | passwd --stdin openstack

   实例演示:

[root@C664BSLab ~]# echo "openstack" | passwd --stdin openstack
Changing password for user openstack.
passwd: all authentication tokens updated successfully.

原创文章,作者:N20-背旅,如若转载,请注明出处:http://www.178linux.com/20309

(0)
N20-背旅N20-背旅
上一篇 2016-06-26
下一篇 2016-06-26

相关推荐

  • 把编译安装的httpd 实现服务脚本,通过service和chkconfig 进行管理

    把编译安装的httpd 实现服务脚本,通过service和chkconfig 进行管理 1 编译安装httpd 把httpd编译安装在/app/httpd/目录下。 2 在/etc/rc.d/init.d/目录下新建一个文件httpd 这个文件的目的在于让service 命令可以管理编译安装的httpd服务。 文件内容如下: [root@CentOS68 ~…

    Linux干货 2017-05-15
  • 常见RAID介绍

    RAID简介 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。主要目的是把多块硬盘组合起来提高数据处理能力、容错功能等 根据实现方式分为硬件和软件两种  硬件RAID:通过RAID…

    2016-04-12
  • 8.3_Linux文件系统权限和特殊权限浅析

    什么是Linux文件系统权限? 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。 Linux文件系统权限的分类 Linux中的权限分为:read(读)、write(写)、execut(执行)三种权限 文件和目录表示的权限也各有不同 权限对于文件的意义: r: 可使用文件查看类工具获取其内容 w: 可修改内…

    Linux干货 2016-08-05
  • Nginx配置与应用详解

    前言 Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站都已使用Nginx作为Web应用服务器。本文带来的是Nginx配置与应用详…

    Linux干货 2015-06-15
  • 运维工程师技能需求排行

    这是我今天在拉勾网搜索运维,翻完了4四页也招聘信息之后得到的,我的目的是想要看看之后的学习,哪个更应该成为重点,有些在我意料之中,有些还真的没想到,算是努力了一个小时的收获吧,分享给大家。
    注意:其中的看法仅代表个人观点,很多都是依靠我自己的学习经验和工作经验累积的

    Linux干货 2017-12-12
  • shell脚本基础

    shell脚本编程基础 1、基本格式 首先在编写shell的开始要声明一下该shell所用的脚本类型,我们也称为shebang机制 eg: #!/bin/bash # Description … 2、bash中的变量的种类 (1)、本地变量 生效范围: 当前shell进程,对当前shell之外的进程及子进程均无效 (2)、环境变量 生效范围: 当前she…

    Linux干货 2017-08-04

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-29 15:26

    写的很好,排版还可以在漂亮一些,加油