马哥教育网络班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)
上一篇 2016-06-26 22:50
下一篇 2016-06-26 22:51

相关推荐

  • MySQL用户和权限管理

    MySQL用户和权限管理

    2018-06-15
  • RPM包管理功能全解。【第三周】

    CentOS系统上rpm命令管理程序包: 安装、升级、卸载、查询、校验、数据库维护 rpm命令:rpm [OPTIONS] [PACKAGE_FILE]     安装:-i, –install     升级:-U, –update,&n…

    Linux干货 2016-11-26
  • 第三周学习总结之用户管理

    写在前面 我们知道作为一个系统管理员,对系统内人员的管理是非常频繁的,今天给张三添加某个权限,明天李四离职需要删除账号、回收权限,后天王五部门调动,都需要涉及到人员账号的相应调整。因此用户的管理就变得尤其重要。 用户管理 Linux系统的用户有普通用户和特权用户之分,特权用户是可以执行特权操作的一个或一类用户,而普通用户则只能执行普通的操作,没有特权操作权利…

    2017-12-19
  • LAMP快速部署及LAMP组合深入讲解-1

      lamp php php: 脚本编程语言、嵌入到html中的嵌入式web程序开发语言;基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境) 一、PHP简介 PHP是通用服务器端脚本编程语言,其主要用于web开发以实现动态web页面,它也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供了一…

    Linux干货 2017-06-04
  • SNAT,DNAT,端口转发

    利用iptables配置NAT

    2018-03-01
  • 马哥教育网络班21期+第1周课程练习

    1、描述计算机的组成及其功能: 运算器:进行各种算术和逻辑运算 控制器:用于数据缓存、数据交换以及接收和识别CPU命令 存储器:用于临时存放各种程序和数据,如内存 输入设备:向计算机输入数据 输出设备:将计算机计算结果以数字、文本或图形等结果显示出来 2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别: linux三大发行版: slackwa…

    2016-07-12

评论列表(1条)

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

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