相关知识

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

图形化界面登录

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

案例演示

1: 添加一个新用户,并且设置登录密码,然后在图形界面登录。

root@evassh-12053448:~# useradd newuser  #新建用户
root@evassh-12053448:~# passwd newuser   #添加密码
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

使用login命令登录

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

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

命令格式:

login [命令参数] 参数

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

常见命令参数

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

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

案例演示

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

首先查看当前登录的用户名是fzm

[fzm@ubuntu: ~]# whoami
fzm
[fzm@ubuntu: ~]# 

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

root@evassh-12053448:~# login
evassh-12053448 login: newuser
Password: 
newuser@evassh-12053448:/root$ whoami
newuser
newuser@evassh-12053448:/root$ 

使用logout或者exit命令退出newUser用户,然后在查看当前登录用户。

newuser@evassh-12053448:/root$ exit
exit
root@evassh-12053448:~# whoami
root

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

首先查看当前登录的用户名。

root@evassh-12053448:~# whoami
root
root@evassh-12053448:~# _

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

sudo touch /etc/nologin

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

root@evassh-12053448:~# touch /etc/nologin
root@evassh-12053448:~# login
evassh-12053448 login: newuser
Password:


Authentication failure

evassh-12053448 login: root
Password:

root@evassh-12053448:~# whoami
root
root@evassh-12053448:~# _

发现使用newUser用户是无法登录系统的,只有使用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命令所有使用者都可以执行。

案例演示

1: 使用su命令切换当前用户身份(不改变当前工作目录)。

首先查看当前登录的用户名是fzm,当前工作目录是/home/fzm

 

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

 

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

 

2: 使用su命令切换当前用户身份(改变当前工作目录)。

首先查看当前登录的用户名是fzm,当前工作目录是/home/fzm

 

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

 

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

 

练习:

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

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

#!/bin/bash

#创建newUser新用户
#***********begin*************#

useradd newUser 


#************end**************#

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

#***********begin*************#
passwd newUser << EOF
123123
123123
EOF
#************end**************#

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

#***********begin*************#
su -c whoami newUser

exit 

#************end**************#

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐