小练习题。【第三周】

练习

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

~]# who | cut -d' ' -f1 |uniq

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

/]# who | sort -r | tail -n 1

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

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

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

/]$ cat /etc/passwd |sort -n -t':' -k3 |tail -n 10|tr 'a-z' 'A-Z' >/tmp/maxusers.txt

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

/]$ ifconfig |grep "\<inet\>"  |cut -d' ' -f10

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

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

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

/]$ ll /var |wc -l

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

/]# cat /etc/group |sort -r -t':' -k3 |tail -n 10 |cut -d':' -f1

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

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

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

1)创建组distro, 其GID为2016;
    /]# groupadd -g 2016 distor

2)创建用户mandriva ,其ID号为1005;基本组为distro;
    /]# useradd -u 1005 -g 2016 mandriva

3)创建用户mageid,其ID号为1100,家目录为/home/linux;
    /]# useradd -u 1100 -d /home/linux mageid

4)给用户mageia添加密码,密码为mageedu;
    /]# passwd mageid

5)删除mandriva,但保留其家目录;
    /]# userdel mandriva

6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    /]# groupadd peguin
    /]# useradd -u 2002 -g 2016 -G 2017 slackware

7)修改slackware 的默认shell为/bin/tcsh;
  /]# usermod -s /bin/tcsh slackware

8)为用户slackware 新增附加组admins;
  /]# usermod -G 2018 -a  slackware

9)为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
   /]# passwd slackware| passwd -n 3 -x 180 -w 3 slackware


10)添加用户openstack,其ID号为3003,基本组为clouds,附加组peguin和nova;
    /]# groupadd clouds
    /]# groupadd nova
    /]# useradd -u 3003 -g 2019 -G 2017,2020 openstack

11)添加系统用户mysql,要求其shell为/sbin/nologin;
    /]# useradd -r -s /sbin/nologin mysql

12)使用echo命令,非交互式为openstack添加密码;
    /]# echo "magees" | passwd --stdin openstack

总结

groupadd命令:添加组

groupadd [选项] group_name

    -g GID:指定GID:默认是上一个组的GID+1;
    -r : 创建系统组;

groupmod命令:修改组属性

groupmod [选项] GROUP
    -g GID:修改GID;
    -n new_name:修改组名;

groupdel命令:删除组

groupdel [选项] GROUP

useradd命令:创建用户

useradd [选项] 登录名
    -u, --uid UID:指定UID;
    -g, --gid GROUP:指定基本组ID,此组得事先存在;
    -G, --groups GROUP1[,GROUP2,...]:指明用户所属的附加组,多个组之间用逗号隔开
    -c, --comment COMMENT:指明注释信息;
    -d, --home HOME_DIR:以指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果实现存在,则不会为用户复制环境配置文件;
    -s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
    -r,     --system:创建系统用户;

注意:创建用户时的诸多默认设定配置文件为/etc/login.defs

useradd -D: 显示创建用户的默认配置;
useradd -D 选项:修改默认选项的值;

    修改的结果保存于:/etc/default/useradd文件中;

usermod命令:修改用户属性

usermod [选项] 登录
    -u,  --uid UID: 修改用户的ID为此处指定的新UID;
    -g, --gid GROUP:修改用户所属的基本组;
    -G, --groups GROUP1[,GROUP2,...]:修改用户所属组的附加组,原来的附加组会被覆盖;
    -a --append:与-G一同使用,用于为用户追加新的附加组;
    -c, --comment COMMENT:指明注释信息;
    -d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
    -m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
    -l, --login NEW_LOGIN:修改用户名;
    -s, --shell SHELL:修改用户的默认shell;

    -L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个“!”;
    -U, --unlock:解锁用户的密码;

userdel命令:删除用户

userdel [选项] 登录
    -r:删除用户时一并删除其家目录;

passwd命令:

passwd  [-k]  [-l]  [-u  [-f]]  [-d] [-e] [-n mindays] [-x maxdays] [-wwarndays] [-i inactivedays] [-S] [--stdin] [username]


(1)passwd: 修改用户自己的密码;
(2)passwd USERNAME: 修改指定用户的密码,但仅root有此权限;

    -l, -u:锁定和解锁用户;
    -d:清除用户密码串;
    -e DATE:过期期限,日期;
    -i DAYS:非活动期限;
    -n DAYS:密码的最短使用期限;
    -x DAYS:密码的最长使用期限;
    -w DAYS:警告期限;

    --stdin:
        echo "meagees" |passwd --stdin USERNAME

gpasswd命令:

组密码文件:/etc/gshadow

gpasswd [选项] group
    -a USERNAME:向组中添加用户
    -d USERNAME:从组中移除用户

newgrp命令:临时切换指定的组为基本组;

newgrp [-] [group]

-:会模拟用户重新登录以实现重新初始化其工作环境;

chage命令:更改用户密码过期信息

chage [选项] 登录名

    -d
    -E
    -w
    -m
    -M

id命令:显示用户的真实和有效ID;

id [OPTIONS]...[USER]
    -u:仅显示有效的UID;
    -g:仅显示用户的基本组ID;
    -G:仅显示用户所属的所有组的ID;
    -n:显示名字而非ID;

su命令:switch user

登录式切换:会通过读取目标用户的配置文件来重新初始化
    su - USERNAME
    su -l USERNAME
非登录式切换:不会读取目标用户的配置文件进行初始化
    su USERNAME

注意:管理员可无密码切换至其他任何用户;
        非管理员在切换其他任何用户时需要输入该用户密码;

-c 'COMMAND':仅以指定用户的身份运行此处指定的命令;

其他几个命令:chsh,chfn,finger,whoami,pwck,grpck

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

(0)
N24_xiaowenN24_xiaowen
上一篇 2016-11-26
下一篇 2016-11-26

相关推荐

  • 网络实验

    一、子网划分 1、某公司申请到一个C 类IP 地址,但要连接6 个的子公司,最大的一个子公司有26 台计算机,每个子公司在一个网段中,则子网掩码应设为? 使用27位子网掩码一共可以分出8个子网 每段32个地址;每个子网有30个可用地址 0-31 32-63 64-95 96-127 128-159 160-191 192-223 224-255 2、一家集团…

    Linux干货 2016-09-09
  • 第九周

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash for i in `cut -d':' -f7 /etc/passwd`;do &n…

    Linux干货 2016-09-26
  • Linux的常见文件类型

      在linux中,文件的类型和权限通常以【-rwxr-xr-x】来表示,文件以第一个字符来表示不同的文件类型,具体如下。   – :普通文件;颜色为灰白色   d :目录文件;颜色为蓝色   b :块设备文件;颜色为黄色   c :字符设备文件;颜色为黄色   p :管道文件;颜色为绿…

    Linux干货 2016-10-20
  • 系统基础之用户,组及权限管理

    用户及组详解 概论:   现今,大多数操作系统都是多用户(Multi-tasks)多任务(Mulit-Users)的系统.在多年前,计算机资源远没有现在这么丰富,都是多人使用同一台计算机,为了保障使用计算机的用户权益不受到损害,完成资源使用隔离,人们采取了用户机制标识使用者的方法.  每个使用者都是用户,用户是由UID进行标识,通过密码进…

    Linux干货 2016-08-04
  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名。 注意同一个用户登陆多次,只显示一次即可。    w | cut -d ' ' -f 1 | uniq -c       2、取出最后登陆到当前系统的用户的相关信息    last | head -n 1  &nbsp…

    Linux干货 2016-06-26
  • Tomcat详解

    Tomcat详解 1、tomcat安装 tomcat的组件:<Server> <Service> <connector/> <connector/> <Engine> <Host /> <Host> <Context/> … </Host> &lt…

    2017-04-27

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-30 22:39

    作业完成的不错,而且看着比较舒服,对于用户管理的命令前期多操作,可以对比着记忆,后期熟练了就自然而然的不用刻意思考了。