写点什么

Linux 用户权限切换

用户头像
在即
关注
发布于: 7 小时前
Linux用户权限切换
  • 任务描述

  • 相关知识

  • 图形化界面登录

  • 案例演示

  • 使用 login 命令登录

  • 案例演示

  • 使用 su 命令切换用户身份

  • 案例演示

  • 编程要求

  • 评测说明


1.任务描述

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

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


2.相关知识

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


3.图形化界面登录

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


4.案例演示


  1. 添加一个新用户,并且设置登录密码,然后在图形界面登录。(因为我是root用户下操作,所以输入指令前面可以不加sudo)

[root@wxz ~]# useradd -m jjUser

[root@wxz ~]# passwd jjUser

更改用户 jjUser 的密码 。

新的 密码:

无效的密码: 密码是一个回文

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。


5.使用 login 命令登录

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

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

命令格式如下:

login [命令参数] 参数

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


6.常见命令参数

  • -p:告诉login指令不销毁环境变量

  • -h:指定远程服务器的主机名


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


7.案例演示


  1. 使用login命令来登录系统(文件/etc/nologin不存在)。

  2. 首先查看当前登录的用户名是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 ~]# _


2.

使用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 failure

wxz login: root

Password:

[root@wxz ~]# whoami

root

[root@wxz ~]# _


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


8.使用 su 命令切换用户身份

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

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

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

命令格式如下:

su [命令参数] 参数

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


9.常见命令参数

  • -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份

  • -l 或--login:改变身份时,也同时变更工作目录,以及 HOME, SHELL, USER, logname。此外,也会变更 PATH 变量

  • -m,-p 或--preserve-environment:变更身份时,不要变更环境变量

  • -s<shell>或--shell=<shell>:指定要执行的 shell。


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

10.案例演示


  • 使用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 ~]#


11.编程要求

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


  • 新创建一个用户newUser,并且设置登录密码

  • 使用su命令切换当前用户身份为zjUser,并且执行whoami指令,然后恢复原来的身份

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

12.评测说明

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


#!/bin/bash

创建 newUser 新用户

#begin**#useradd newUser#end**#


#在符号<<前输入设置用户密码的命令(命令与<< EOF 保持在同一行), 密码输入在下一行,确认密码输入在下下行 #例如:#command << EOF#password#password#EOF#begin**#passwd newUser << EOF121212121212EOF#end**#


#使用 su 命令切换当前用户身份为 newUser,并且执行 whoami 指令,然后恢复原来的身份;#提示使用 su 命令的-c 参数完成 #begin**#su -c whoami newUser


exit#end**#


//欢迎大家来和我一起学习 Linux 从入门到精通喔!

发布于: 7 小时前阅读数: 3
用户头像

在即

关注

记录学习进度 2021.02.27 加入

文章基本上都是课上学到的知识结合自己见解进行写作,如有错误,欢迎各位大牛指出。

评论

发布
暂无评论
Linux用户权限切换