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

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

[root@localhost ~]# w | tail -n+3 | cut -d" " -f1 | sort | uniq

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

[root@localhost ~]# last | head -1 | cut -d" " -f1

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

[root@localhost ~]# cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1
     35 /sbin/nologin

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

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

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

[root@localhost ~]# ifconfig | grep "\<inet\>" | awk '{print $2}'
192.168.8.130
127.0.0.1
192.168.122.1

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

[root@localhost ~]# ls -al /etc | grep "\.conf$" | tr 'a-z' 'A-Z'> /tmp/etc.conf

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

[root@localhost ~]# ls -al /var | tail -n+4 | wc -l
23

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

[root@localhost ~]# sort -t: -k3 -n /etc/group | head -10

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

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

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

用户管理类命令:

    (1)useradd:创建用户

    

用法:useradd [options] USERNAME
选项:
  -b, --base-dir BASE_DIR新账户的主目录的基目录
  -c, --comment COMMENT         新账户的 GECOS 字段
  -d, --home-dir HOME_DIR       新账户的主目录
  -D, --defaults 显示或更改默认的 useradd 配置
  -e, --expiredate EXPIRE_DATE  新账户的过期日期
  -f, --inactive INACTIVE       新账户的密码不活动期
  -g, --gid GROUP 新账户主组的名称或 ID
  -G, --groups GROUPS新账户的附加组列表
  -h, --help                    显示此帮助信息并推出
  -k, --skel SKEL_DIR使用此目录作为骨架目录
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -l, --no-log-init不要将此用户添加到最近登录和登录失败数据库
  -m, --create-home创建用户的主目录
  -M, --no-create-home 不创建用户的主目录
  -N, --no-user-group不创建同名的组
  -o, --non-unique 允许使用重复的 UID 创建用户
  -p, --password PASSWORD 加密后的新账户密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL 新账户的登录 shell
  -u, --uid UID 新账户的用户 ID
  -U, --user-group 创建与用户同名的组
  -Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

         

(2)userdel:删除用户

 用法:userdel [options] USERNAME
    options:
        -r:删除用户,同时删除用户家目录及相关邮件;
        -f:强制执行删除用户行为;

         

(3)usermod:修改账号属性

用法:usermode [options] USERNAME
    options:
        -c:修改指定账号的声明信息;
        -d <HOME_DIR>:修改指定账号的家目录;
        -g <GROUP>:修改指定账号所属的基本组;
        -G <GROUPS>:修改指定账号所属的附加组;如果GROUPS为空;则表示删除该账号的附加组信息(没有附加组);
        -a -G <NewGroups>:新增指定账号所属的附加组信息;
        -l <NewUSERNAME>:修改指定账号名为NewUSERNAME;
        -p <PASSWORD>:修改指定账号的密码;
        -s <SHELL>:修改指定账号使用的shell;
        -u <UID>:修改指定账号的UID;
        -U:解锁账号;

         

(4)passwd:设置或修改用户密码

用法:passwd USERNAME
         passwd [options] USERNAME
    options:
        -d:删除指定账号密码;
        -l:锁定指定账号密码;
        -u:解锁指定账号密码;
        -e:设置指定账号密码过期;
        -x:设置指定账号密码的最大可用天数;
        -n:设置指定账号密码的最小可用天数;
        -w:设置指定账号收到密码过期通知的天数;
        -i:设置指定账号密码过期后,账号不可用的天数;
        -S:显示指定账号的密码状态;
        -f:强制执行;
    特殊用法:
        #echo PASSWORD|passwd --stdin USERNAME
        设置用户密码;只需执行一次即可;
    备注:passwd命令需要用户具有root权限;

     

组管理类命令:

    (5)groupadd:创建组

用法:groupadd [options] GROUPNAME
    options:
        -g <GID>:指定创建的组的GID;
        -o:指定创建的组可以使用重复的GID;
        -p <PASSWORD>:指定创建的组的加密密码;
        -r:指定创建的组为系统组;
        -f:强制执行;

         

    (6)groupdel:删除组

用法:groupdel [options] GROUPNAME

         

(7)groupmod:修改组

用法:groupmod [options] GROUPNAME
    options:
        -g <GID>:修改指定组的GID;
        -n <New_GRPNAME>:修改指定组的组名为New_GRPNAME;
        -p <PASSWORD>:修改指定组的密码;

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

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

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

[root@localhost ~]# useradd -u 1005 -g distro mandriva

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

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

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

[root@localhost ~]# echo mageedu | passwd --stdin mageia

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

[root@localhost ~]# userdel mandriva

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

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

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

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

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

[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -a -G admins slackware

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

[root@localhost ~]# echo mageedu | passwd --stdin slackware
[root@localhost ~]# passwd -x 180 -n 3 -w 3 slackware
调整用户密码老化数据slackware。
passwd: 操作成功

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

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

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

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

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

[root@localhost ~]# echo mageedu | passwd --stdin openstack

更改用户 openstack 的密码 。
passwd:所有的身份验证令牌已经成功更新。

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

(0)
zhangxiaolazhangxiaola
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • httpd服务归纳:网络服务基础篇

    一、网络传输基础     1. 套接字:两类          1) Unix Sock: 一种本地文件系统          2) Socket: IP port (I…

    Linux干货 2015-05-04
  • bash脚本编程之数组、高级字符串处理、高级变量操作、用户环境配置

    概述:     承接之前脚本编程部分,本篇将介绍一下脚本编程基础语法的最后一部分内容,具体分为:         1、数组简介         2、高级字符串处…

    Linux干货 2016-08-24
  • n28 第二周作业

    n28 第二周作业

    Linux干货 2017-12-09
  • Find工具实例

      1、显示当前系统上root、fadora或user1用户的默认shell。         [root@localhost ~]# grep -E "^(root|fadora|user1)\>"&n…

    Linux干货 2016-11-27
  • mariadb基础应用

    mariadb基础应用 一、 前言 MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users …

    Linux干货 2016-12-16
  • 浅谈Android应用HTTP框架选型

    我们知道,Android应用主要是通过客户端-服务器的方式进行数据交互,一般在APP开发时可能是一个接口对应一个显示模块,这样的设计会让客户端更新时很麻烦。为了解决这个问题,通常的做法是和服务端之间定义协议,设计显示模式,进而达到实时更新UI界面的目的,增加或删除显示模块时不需要让用户手动更新apk,这种方法最常见的就是在做活动或者广告的时候用到。以我们的优…

    2016-06-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-30 12:24

    写的很认真,很好,请继续保持