第 3 关——Linux用户权限切换

  • 任务描述
  • 相关知识
    • 图形化界面登录
    • 案例演示
    • 使用 login 命令登录
    • 案例演示
    • 使用 su 命令切换用户身份
    • 案例演示
  • 编程要求
  • 评测说明

任务描述

恭喜你已经顺利的通过了前两关的挑战,现在你已经学会了如何创建一个新用户和删除一个已经存在的用户,以及如何修改一个用户的登录密码,接下来,我们一起学习不同用户之间的切换。Linux系统运行多个用户同时登录系统,也运行多个用户间的进行切换。Linux中使用whoami命令来查看当前登录系统的用户名。

本关的任务是新创建一个用户,并设置登录密码,然后登录新创建的用户。

相关知识

通过本关学习,你将掌握如下知识点:Linux用户登陆的三种方式

图形化界面登录
Linux中添加用户后,用户在图形界面登录系统的方式和Windows一样,都是选择要登录的用户后直接输入登录密码即可。

案例演示

  1. 添加一个新用户,并且设置登录密码,然后在图形界面登录。(因为我是root用户下操作,所以输入指令前面可以不加sudo)
[root@wxz ~]# useradd -m jjUser
[root@wxz ~]# passwd jjUser
更改用户 jjUser 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

使用 login 命令登录
login命令是让用户登录系统,可通过它的功能随时更换登入身份。当/etc目录里含名称为nologin的文件时,系统只允许root账号登入系统,其他用户一律不准登入。

当使用login命令登录系统后,可以使用logout命令或者exit命令来退出当前用户登录,返回到登录前的用户状态。
命令格式如下:

login [命令参数] 参数

参数为登录的用户名,可以不输入登录的用户名,直接输入login命令后回车,然后根据提示再输入用户名和密码。

常见命令参数

  • -p:告诉login指令不销毁环境变量
  • -h:指定远程服务器的主机名

login必须以root权限才能执行,如果是普通用户执行时,需要在命令前加sudo命令来提升权限为root权限。

案例演示

  1. 使用login命令来登录系统(文件/etc/nologin不存在)。
    首先查看当前登录的用户名是root
[root@wxz ~]# whoami
root
[root@wxz ~]#

使用jjUser用户来登录系统,然后查看当前登录的用户名:

[root@wxz ~]# login
wxz login: jjUser
Password:
[jjUser@wxz ~]$ whoami
jjUser
[jjUser@wxz ~]$ _

使用logout或者exit命令退出jjUser用户,然后在查看当前登录用户是否为root

[jjUser@wxz ~]$ logout
wxz login: root
Password:
[root@wxz ~]# whoami
root
[root@wxz ~]# _
  1. 使用login命令来登录系统(文件/etc/nologin存在)。
    首先查看当前登录的用户名是root
[root@wxz ~]# whoami
root
[root@wxz ~]# _

/etc/目录下新创建一个nologin文件,使用如下命令创建:

sudo touch /etc/nologin

使用普通用户jjUser来登录系统, 查看是否可以登录成功:

[root@wxz ~]# touch /etc/nologin
[root@wxz ~]# login
wxz login: jjUser
Password:Authentication failurewxz login: root
Password:[root@wxz ~]# whoami
root
[root@wxz ~]# _

发现使用jjUser用户登录时显示Authentication failure(验证失败),已经无法登录系统了,所以使用root用户才能登录系统。


使用 su 命令切换用户身份
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户账号的密码。

当使用su命令切换用户后,使用exit命令退出当前身份,返回原有登录用户身份。

注:如果当前用户身份是root,则使用su命令切换到其他用户的时候不需要相应用户的密码

命令格式如下:

su [命令参数] 参数

参数为登录的用户名,如果没有参数,则默认切换为root用户。

常见命令参数

  • -c<指令>--command=<指令>:执行完指定的指令后,即恢复原来的身份
  • -l--login:改变身份时,也同时变更工作目录,以及HOME, SHELL, USER, logname。此外,也会变更PATH变量
  • -m,-p--preserve-environment:变更身份时,不要变更环境变量
  • -s<shell>--shell=<shell>:指定要执行的shell

su命令所有使用者都可以执行。

案例演示

  • 使用su命令切换当前用户身份(不改变当前工作目录):
    首先查看当前登录的用户名是root,当前工作目录是/root
[root@wxz ~]# whoami
root
[root@wxz ~]# pwd
/root
[root@wxz ~]#

切换当前用户为jjUser用户,然后查看当前用户身份和当前工作目录。

[root@wxz ~]# su jjUser
[jjUser@wxz root]$ whoami
jjUser
[jjUser@wxz root]$ pwd
/root
[jjUser@wxz root]$

使用exit命令退出jjUser用户,然后再查看当前登录用户身份和当前工作目录。

[jjUser@wxz root]$ exit
exit
[root@wxz ~]# whoami
root
[root@wxz ~]# pwd
/root
[root@wxz ~]#
  • 使用su命令切换当前用户身份(改变当前工作目录):
    首先查看当前登录的用户名是root,当前的工作目录是/root
[root@wxz ~]# whoami
root
[root@wxz ~]# pwd
/root
[root@wxz ~]#

切换当前用户名为jjUser用户,然后再查看当前用户身份和当前工作目录。

[root@wxz ~]# su - jjUser
上一次登录:三 8月 18 13:01:03 CST 2021pts/0 上
[jjUser@wxz ~]$ whoami
jjUser
[jjUser@wxz ~]$ pwd
/home/jjUser
[jjUser@wxz ~]$

使用exit命令退出jjUser用户,然后再查看当前登录用户身份和当前工作目录。

[jjUser@wxz ~]$ exit
登出
[root@wxz ~]# whoami
root
[root@wxz ~]# pwd
/root
[root@wxz ~]#

编程要求

根据右侧窗口命令行内的提示,在Begin - End区域内进行命令行语句补充,具体任务如下:

  • 新创建一个用户newUser,并且设置登录密码
  • 使用su命令切换当前用户身份为zjUser,并且执行whoami指令,然后恢复原来的身份

注意:本平台执行环境默认以root账户登录,所以执行的所有命令都是以root权限执行。

评测说明

补充完命令行后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

开始你的任务吧,祝你成功!


人的理想志向往往和他的能力成正比。


#!/bin/bash# 创建newUser新用户
#***********begin*************#
useradd newUser
#************end**************##在符号<<前输入设置用户密码的命令(命令与<< EOF保持在同一行), 密码输入在下一行,确认密码输入在下下行
#例如:
#command << EOF
#password
#password
#EOF
#***********begin*************#
passwd newUser << EOF
121212
121212
EOF
#************end**************##使用su命令切换当前用户身份为newUser,并且执行whoami指令,然后恢复原来的身份;
#提示使用su命令的-c参数完成
#***********begin*************#
su -c whoami newUser
exit
#************end**************#

欢迎大家也来头歌和我一起学习Linux从入门到精通喔!加油!年轻人!

Linux入门到精通:第 3 关——Linux用户权限切换(第二章:Linux之用户管理)相关推荐

  1. Linux入门到精通:第 1 关——创建/删除新用户(第二章:Linux之用户管理)

    第 1 关--创建/删除新用户 任务描述 相关知识 Linux创建用户命令 案例演示 Linux删除用户命令 案例演示 编程要求 评测说明 任务描述 恭喜你已经完成了Linux入门的实训,接下来让我们 ...

  2. Linux入门到精通

    Linux是什么? Linux是一套免费使用和自由传播的类Unix的的操作系统,是一个基于POSIX和UNIX的多用户,多任务,支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件,应用程序 ...

  3. 【 linux系统入门管理篇-第二章文件和用户的管理】

    linux系统入门管理篇-第二章文件和用户的管理 本章介绍 一.文件管理 (一).Linux目录结构 (二).文件管理 1.文件管理命令 2.文件类型 二.用户管理 (一).用户/组基本概念 (二). ...

  4. 第二章Linux 基本命令操作

    第二章Linux 基本命令操作 本节所讲内容: 2.1 Linux 终端介绍.Shell 提示符.Bash Shell基本语法: 2.2 基本命令操作: 2.3 系统时间管理: 2.4 帮助命令使用: ...

  5. linux 设计一个程序,要求打开文件 pass 所有者,第二章 Linux 文件操作

    文档均来自网络,如有侵权请联系我删除文档 第二章 Linux 文件操作(4学时) 实验一文件属性和无缓冲I/O 实验目的 1.熟悉Linux文件系统属性控制 2.掌握不带缓存的文件I/O程序设计方法 ...

  6. 第二章Linux基础之共享文件设置

    第二章Linux基础之共享文件设置 一.Linux分区设置 Linux至少要分三个区,即根分区.boot分区和swap分区. 1.根分区 ​ 空闲的磁盘空间全部给根分区即可. 2.swap分区 ​ s ...

  7. Linux(b站视频兄弟连)自学笔记第十二章——Linux服务管理

    Linux(b站视频兄弟连)自学笔记第十二章--Linux服务管理 服务分类 RPM包安装服务的管理 独立服务的管理 基于xinetd 的服务管理 源码包服务管理 服务分类 RPM包安装服务的管理 独 ...

  8. 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略

    精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略 精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第二章:选择你的网络分析灵魂伴侣的最 ...

  9. Linux入门到精通:第 1 关——创建/删除用户组(第二章:Linux之用户管理)

    第 1 关--创建/删除用户组 任务描述 相关知识 Linux创建用户组命令 案例演示一 案例演示二 Linux删除用户组命令 案例演示一 编程要求 评测说明 任务描述 恭喜你已经完成了Linux之用 ...

最新文章

  1. python将sklearn的RocCurveDisplay结果与PrecisionRecallDisplay结果合成为一个图
  2. eclipsse 关闭 方法提示_MacOS10.15.7关闭AppStore右上角小红标提示及系统更新右上角小红标提示的方法...
  3. bat tomcat程序在后台执行_Web中间件漏洞之Tomcat篇
  4. java8之前_Java 8 之前的时间处理
  5. scala和java像不像_关于Java和Scala同步的五件事你不知道
  6. leetcode279. 完全平方数(动态规划)
  7. 均分纸牌问题——(分治 + 贪心 + 前缀和 + 中位数 + 排序)
  8. 【第二周】结对编程(宫丽君和林莉):四则运算
  9. python基础学习笔记3
  10. 高响应比优先调度算法和短作业优先调度算法
  11. linux游戏主机,Steam OS界面介绍
  12. #7220. 「微课 3.6.2 例 1」亚瑟王
  13. openjudge 4978 宠物小精灵之收服
  14. 扫盲贴2.5寸移动硬盘的厚度有几种
  15. PM at Google —— 最全产品经理常用术语及知识点,建议收藏!
  16. group normalization
  17. LSM303DLH六轴角度传感器驱动
  18. 如何在在网站上下载视频
  19. 【JS基础】立即执行函数表达式(自执行函数)
  20. 单选框(单选)、复选框(多选)

热门文章

  1. Excel宏操作绘制学生成绩曲线图
  2. 小米笔记本ruby插耳机后声音小时大时小解决办法
  3. 【Hadoop遇到的坑】运行hadoop自带的例子报错 Error: Could not find or load main class org.apache.hadoop.mapred.YarnCh
  4. BUI框架使用步骤(前端框架)
  5. 原生JS实现FullCalendar
  6. ENSP安装以及简单配置一个拓扑图
  7. 正点原子USMART 调试组件实验学习笔记(一)
  8. 字符串压缩与解压 题解
  9. Python菜单程序制作
  10. SVN database disk image is maiformed