Linux 用户权限切换
任务描述
相关知识
图形化界面登录
案例演示
使用 login 命令登录
案例演示
使用 su 命令切换用户身份
案例演示
编程要求
评测说明
1.任务描述
现在你已经学会了如何创建一个新用户和删除一个已经存在的用户,以及如何修改一个用户的登录密码,接下来,我们一起学习不同用户之间的切换。Linux 系统运行多个用户同时登录系统,也运行多个用户间的进行切换。Linux 中使用 whoami 命令来查看当前登录系统的用户名。
本次的任务是新创建一个用户,并设置登录密码,然后登录新创建的用户。
2.相关知识
通过本次学习,你将掌握如下知识点:Linux 用户登陆的三种方式
3.图形化界面登录
Linux
中添加用户后,用户在图形界面登录系统的方式和Windows
一样,都是选择要登录的用户后直接输入登录密码即可。
4.案例演示
添加一个新用户,并且设置登录密码,然后在图形界面登录。(因为我是
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.案例演示
使用
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 ~]# _
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 从入门到精通喔!
版权声明: 本文为 InfoQ 作者【在即】的原创文章。
原文链接:【http://xie.infoq.cn/article/f29e529b191a8e16f88fb3fde】。文章转载请联系作者。
评论